function __vite_legacy_guard() {
  import.meta.url;
  import("_").catch(() => 1);
  async function* g() {
  }
  ;
}
;
(function polyfill() {
  const relList = document.createElement("link").relList;
  if (relList && relList.supports && relList.supports("modulepreload")) {
    return;
  }
  for (const link of document.querySelectorAll('link[rel="modulepreload"]')) {
    processPreload(link);
  }
  new MutationObserver((mutations) => {
    for (const mutation of mutations) {
      if (mutation.type !== "childList") {
        continue;
      }
      for (const node of mutation.addedNodes) {
        if (node.tagName === "LINK" && node.rel === "modulepreload")
          processPreload(node);
      }
    }
  }).observe(document, { childList: true, subtree: true });
  function getFetchOpts(link) {
    const fetchOpts = {};
    if (link.integrity)
      fetchOpts.integrity = link.integrity;
    if (link.referrerPolicy)
      fetchOpts.referrerPolicy = link.referrerPolicy;
    if (link.crossOrigin === "use-credentials")
      fetchOpts.credentials = "include";
    else if (link.crossOrigin === "anonymous")
      fetchOpts.credentials = "omit";
    else
      fetchOpts.credentials = "same-origin";
    return fetchOpts;
  }
  function processPreload(link) {
    if (link.ep)
      return;
    link.ep = true;
    const fetchOpts = getFetchOpts(link);
    fetch(link.href, fetchOpts);
  }
})();
const style = "";
var commonjsGlobal = typeof globalThis !== "undefined" ? globalThis : typeof window !== "undefined" ? window : typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : {};
var swiper$1 = { exports: {} };
(function(module2, exports2) {
  (function(global2, factory) {
    module2.exports = factory();
  })(commonjsGlobal, function() {
    var doc = typeof document === "undefined" ? {
      body: {},
      addEventListener: function addEventListener() {
      },
      removeEventListener: function removeEventListener() {
      },
      activeElement: {
        blur: function blur() {
        },
        nodeName: ""
      },
      querySelector: function querySelector() {
        return null;
      },
      querySelectorAll: function querySelectorAll() {
        return [];
      },
      getElementById: function getElementById() {
        return null;
      },
      createEvent: function createEvent() {
        return {
          initEvent: function initEvent() {
          }
        };
      },
      createElement: function createElement() {
        return {
          children: [],
          childNodes: [],
          style: {},
          setAttribute: function setAttribute() {
          },
          getElementsByTagName: function getElementsByTagName() {
            return [];
          }
        };
      },
      location: { hash: "" }
    } : document;
    var win = typeof window === "undefined" ? {
      document: doc,
      navigator: {
        userAgent: ""
      },
      location: {},
      history: {},
      CustomEvent: function CustomEvent() {
        return this;
      },
      addEventListener: function addEventListener() {
      },
      removeEventListener: function removeEventListener() {
      },
      getComputedStyle: function getComputedStyle() {
        return {
          getPropertyValue: function getPropertyValue() {
            return "";
          }
        };
      },
      Image: function Image() {
      },
      Date: function Date2() {
      },
      screen: {},
      setTimeout: function setTimeout2() {
      },
      clearTimeout: function clearTimeout2() {
      }
    } : window;
    var Dom7 = function Dom72(arr) {
      var self2 = this;
      for (var i = 0; i < arr.length; i += 1) {
        self2[i] = arr[i];
      }
      self2.length = arr.length;
      return this;
    };
    function $(selector, context) {
      var arr = [];
      var i = 0;
      if (selector && !context) {
        if (selector instanceof Dom7) {
          return selector;
        }
      }
      if (selector) {
        if (typeof selector === "string") {
          var els;
          var tempParent;
          var html2 = selector.trim();
          if (html2.indexOf("<") >= 0 && html2.indexOf(">") >= 0) {
            var toCreate = "div";
            if (html2.indexOf("<li") === 0) {
              toCreate = "ul";
            }
            if (html2.indexOf("<tr") === 0) {
              toCreate = "tbody";
            }
            if (html2.indexOf("<td") === 0 || html2.indexOf("<th") === 0) {
              toCreate = "tr";
            }
            if (html2.indexOf("<tbody") === 0) {
              toCreate = "table";
            }
            if (html2.indexOf("<option") === 0) {
              toCreate = "select";
            }
            tempParent = doc.createElement(toCreate);
            tempParent.innerHTML = html2;
            for (i = 0; i < tempParent.childNodes.length; i += 1) {
              arr.push(tempParent.childNodes[i]);
            }
          } else {
            if (!context && selector[0] === "#" && !selector.match(/[ .<>:~]/)) {
              els = [doc.getElementById(selector.trim().split("#")[1])];
            } else {
              els = (context || doc).querySelectorAll(selector.trim());
            }
            for (i = 0; i < els.length; i += 1) {
              if (els[i]) {
                arr.push(els[i]);
              }
            }
          }
        } else if (selector.nodeType || selector === win || selector === doc) {
          arr.push(selector);
        } else if (selector.length > 0 && selector[0].nodeType) {
          for (i = 0; i < selector.length; i += 1) {
            arr.push(selector[i]);
          }
        }
      }
      return new Dom7(arr);
    }
    $.fn = Dom7.prototype;
    $.Class = Dom7;
    $.Dom7 = Dom7;
    function unique(arr) {
      var uniqueArray = [];
      for (var i = 0; i < arr.length; i += 1) {
        if (uniqueArray.indexOf(arr[i]) === -1) {
          uniqueArray.push(arr[i]);
        }
      }
      return uniqueArray;
    }
    function addClass(className) {
      if (typeof className === "undefined") {
        return this;
      }
      var classes2 = className.split(" ");
      for (var i = 0; i < classes2.length; i += 1) {
        for (var j = 0; j < this.length; j += 1) {
          if (typeof this[j] !== "undefined" && typeof this[j].classList !== "undefined") {
            this[j].classList.add(classes2[i]);
          }
        }
      }
      return this;
    }
    function removeClass(className) {
      var classes2 = className.split(" ");
      for (var i = 0; i < classes2.length; i += 1) {
        for (var j = 0; j < this.length; j += 1) {
          if (typeof this[j] !== "undefined" && typeof this[j].classList !== "undefined") {
            this[j].classList.remove(classes2[i]);
          }
        }
      }
      return this;
    }
    function hasClass(className) {
      if (!this[0]) {
        return false;
      }
      return this[0].classList.contains(className);
    }
    function toggleClass(className) {
      var classes2 = className.split(" ");
      for (var i = 0; i < classes2.length; i += 1) {
        for (var j = 0; j < this.length; j += 1) {
          if (typeof this[j] !== "undefined" && typeof this[j].classList !== "undefined") {
            this[j].classList.toggle(classes2[i]);
          }
        }
      }
      return this;
    }
    function attr(attrs, value) {
      var arguments$1 = arguments;
      if (arguments.length === 1 && typeof attrs === "string") {
        if (this[0]) {
          return this[0].getAttribute(attrs);
        }
        return void 0;
      }
      for (var i = 0; i < this.length; i += 1) {
        if (arguments$1.length === 2) {
          this[i].setAttribute(attrs, value);
        } else {
          for (var attrName in attrs) {
            this[i][attrName] = attrs[attrName];
            this[i].setAttribute(attrName, attrs[attrName]);
          }
        }
      }
      return this;
    }
    function removeAttr(attr2) {
      for (var i = 0; i < this.length; i += 1) {
        this[i].removeAttribute(attr2);
      }
      return this;
    }
    function data(key, value) {
      var el;
      if (typeof value === "undefined") {
        el = this[0];
        if (el) {
          if (el.dom7ElementDataStorage && key in el.dom7ElementDataStorage) {
            return el.dom7ElementDataStorage[key];
          }
          var dataKey = el.getAttribute("data-" + key);
          if (dataKey) {
            return dataKey;
          }
          return void 0;
        }
        return void 0;
      }
      for (var i = 0; i < this.length; i += 1) {
        el = this[i];
        if (!el.dom7ElementDataStorage) {
          el.dom7ElementDataStorage = {};
        }
        el.dom7ElementDataStorage[key] = value;
      }
      return this;
    }
    function transform(transform2) {
      for (var i = 0; i < this.length; i += 1) {
        var elStyle = this[i].style;
        elStyle.webkitTransform = transform2;
        elStyle.transform = transform2;
      }
      return this;
    }
    function transition(duration) {
      if (typeof duration !== "string") {
        duration = duration + "ms";
      }
      for (var i = 0; i < this.length; i += 1) {
        var elStyle = this[i].style;
        elStyle.webkitTransitionDuration = duration;
        elStyle.transitionDuration = duration;
      }
      return this;
    }
    function on() {
      var assign;
      var args = [], len = arguments.length;
      while (len--)
        args[len] = arguments[len];
      var eventType = args[0];
      var targetSelector = args[1];
      var listener = args[2];
      var capture = args[3];
      if (typeof args[1] === "function") {
        assign = args, eventType = assign[0], listener = assign[1], capture = assign[2];
        targetSelector = void 0;
      }
      if (!capture) {
        capture = false;
      }
      function handleLiveEvent(e) {
        var target = e.target;
        if (!target) {
          return;
        }
        var eventData = e.target.dom7EventData || [];
        if (eventData.indexOf(e) < 0) {
          eventData.unshift(e);
        }
        if ($(target).is(targetSelector)) {
          listener.apply(target, eventData);
        } else {
          var parents2 = $(target).parents();
          for (var k = 0; k < parents2.length; k += 1) {
            if ($(parents2[k]).is(targetSelector)) {
              listener.apply(parents2[k], eventData);
            }
          }
        }
      }
      function handleEvent(e) {
        var eventData = e && e.target ? e.target.dom7EventData || [] : [];
        if (eventData.indexOf(e) < 0) {
          eventData.unshift(e);
        }
        listener.apply(this, eventData);
      }
      var events2 = eventType.split(" ");
      var j;
      for (var i = 0; i < this.length; i += 1) {
        var el = this[i];
        if (!targetSelector) {
          for (j = 0; j < events2.length; j += 1) {
            var event = events2[j];
            if (!el.dom7Listeners) {
              el.dom7Listeners = {};
            }
            if (!el.dom7Listeners[event]) {
              el.dom7Listeners[event] = [];
            }
            el.dom7Listeners[event].push({
              listener,
              proxyListener: handleEvent
            });
            el.addEventListener(event, handleEvent, capture);
          }
        } else {
          for (j = 0; j < events2.length; j += 1) {
            var event$1 = events2[j];
            if (!el.dom7LiveListeners) {
              el.dom7LiveListeners = {};
            }
            if (!el.dom7LiveListeners[event$1]) {
              el.dom7LiveListeners[event$1] = [];
            }
            el.dom7LiveListeners[event$1].push({
              listener,
              proxyListener: handleLiveEvent
            });
            el.addEventListener(event$1, handleLiveEvent, capture);
          }
        }
      }
      return this;
    }
    function off() {
      var assign;
      var args = [], len = arguments.length;
      while (len--)
        args[len] = arguments[len];
      var eventType = args[0];
      var targetSelector = args[1];
      var listener = args[2];
      var capture = args[3];
      if (typeof args[1] === "function") {
        assign = args, eventType = assign[0], listener = assign[1], capture = assign[2];
        targetSelector = void 0;
      }
      if (!capture) {
        capture = false;
      }
      var events2 = eventType.split(" ");
      for (var i = 0; i < events2.length; i += 1) {
        var event = events2[i];
        for (var j = 0; j < this.length; j += 1) {
          var el = this[j];
          var handlers = void 0;
          if (!targetSelector && el.dom7Listeners) {
            handlers = el.dom7Listeners[event];
          } else if (targetSelector && el.dom7LiveListeners) {
            handlers = el.dom7LiveListeners[event];
          }
          if (handlers && handlers.length) {
            for (var k = handlers.length - 1; k >= 0; k -= 1) {
              var handler = handlers[k];
              if (listener && handler.listener === listener) {
                el.removeEventListener(event, handler.proxyListener, capture);
                handlers.splice(k, 1);
              } else if (listener && handler.listener && handler.listener.dom7proxy && handler.listener.dom7proxy === listener) {
                el.removeEventListener(event, handler.proxyListener, capture);
                handlers.splice(k, 1);
              } else if (!listener) {
                el.removeEventListener(event, handler.proxyListener, capture);
                handlers.splice(k, 1);
              }
            }
          }
        }
      }
      return this;
    }
    function trigger() {
      var args = [], len = arguments.length;
      while (len--)
        args[len] = arguments[len];
      var events2 = args[0].split(" ");
      var eventData = args[1];
      for (var i = 0; i < events2.length; i += 1) {
        var event = events2[i];
        for (var j = 0; j < this.length; j += 1) {
          var el = this[j];
          var evt = void 0;
          try {
            evt = new win.CustomEvent(event, {
              detail: eventData,
              bubbles: true,
              cancelable: true
            });
          } catch (e) {
            evt = doc.createEvent("Event");
            evt.initEvent(event, true, true);
            evt.detail = eventData;
          }
          el.dom7EventData = args.filter(function(data2, dataIndex) {
            return dataIndex > 0;
          });
          el.dispatchEvent(evt);
          el.dom7EventData = [];
          delete el.dom7EventData;
        }
      }
      return this;
    }
    function transitionEnd(callback) {
      var events2 = ["webkitTransitionEnd", "transitionend"];
      var dom = this;
      var i;
      function fireCallBack(e) {
        if (e.target !== this) {
          return;
        }
        callback.call(this, e);
        for (i = 0; i < events2.length; i += 1) {
          dom.off(events2[i], fireCallBack);
        }
      }
      if (callback) {
        for (i = 0; i < events2.length; i += 1) {
          dom.on(events2[i], fireCallBack);
        }
      }
      return this;
    }
    function outerWidth(includeMargins) {
      if (this.length > 0) {
        if (includeMargins) {
          var styles2 = this.styles();
          return this[0].offsetWidth + parseFloat(styles2.getPropertyValue("margin-right")) + parseFloat(styles2.getPropertyValue("margin-left"));
        }
        return this[0].offsetWidth;
      }
      return null;
    }
    function outerHeight(includeMargins) {
      if (this.length > 0) {
        if (includeMargins) {
          var styles2 = this.styles();
          return this[0].offsetHeight + parseFloat(styles2.getPropertyValue("margin-top")) + parseFloat(styles2.getPropertyValue("margin-bottom"));
        }
        return this[0].offsetHeight;
      }
      return null;
    }
    function offset() {
      if (this.length > 0) {
        var el = this[0];
        var box = el.getBoundingClientRect();
        var body = doc.body;
        var clientTop = el.clientTop || body.clientTop || 0;
        var clientLeft = el.clientLeft || body.clientLeft || 0;
        var scrollTop = el === win ? win.scrollY : el.scrollTop;
        var scrollLeft = el === win ? win.scrollX : el.scrollLeft;
        return {
          top: box.top + scrollTop - clientTop,
          left: box.left + scrollLeft - clientLeft
        };
      }
      return null;
    }
    function styles() {
      if (this[0]) {
        return win.getComputedStyle(this[0], null);
      }
      return {};
    }
    function css(props, value) {
      var i;
      if (arguments.length === 1) {
        if (typeof props === "string") {
          if (this[0]) {
            return win.getComputedStyle(this[0], null).getPropertyValue(props);
          }
        } else {
          for (i = 0; i < this.length; i += 1) {
            for (var prop in props) {
              this[i].style[prop] = props[prop];
            }
          }
          return this;
        }
      }
      if (arguments.length === 2 && typeof props === "string") {
        for (i = 0; i < this.length; i += 1) {
          this[i].style[props] = value;
        }
        return this;
      }
      return this;
    }
    function each(callback) {
      if (!callback) {
        return this;
      }
      for (var i = 0; i < this.length; i += 1) {
        if (callback.call(this[i], i, this[i]) === false) {
          return this;
        }
      }
      return this;
    }
    function html(html2) {
      if (typeof html2 === "undefined") {
        return this[0] ? this[0].innerHTML : void 0;
      }
      for (var i = 0; i < this.length; i += 1) {
        this[i].innerHTML = html2;
      }
      return this;
    }
    function text(text2) {
      if (typeof text2 === "undefined") {
        if (this[0]) {
          return this[0].textContent.trim();
        }
        return null;
      }
      for (var i = 0; i < this.length; i += 1) {
        this[i].textContent = text2;
      }
      return this;
    }
    function is(selector) {
      var el = this[0];
      var compareWith;
      var i;
      if (!el || typeof selector === "undefined") {
        return false;
      }
      if (typeof selector === "string") {
        if (el.matches) {
          return el.matches(selector);
        } else if (el.webkitMatchesSelector) {
          return el.webkitMatchesSelector(selector);
        } else if (el.msMatchesSelector) {
          return el.msMatchesSelector(selector);
        }
        compareWith = $(selector);
        for (i = 0; i < compareWith.length; i += 1) {
          if (compareWith[i] === el) {
            return true;
          }
        }
        return false;
      } else if (selector === doc) {
        return el === doc;
      } else if (selector === win) {
        return el === win;
      }
      if (selector.nodeType || selector instanceof Dom7) {
        compareWith = selector.nodeType ? [selector] : selector;
        for (i = 0; i < compareWith.length; i += 1) {
          if (compareWith[i] === el) {
            return true;
          }
        }
        return false;
      }
      return false;
    }
    function index() {
      var child = this[0];
      var i;
      if (child) {
        i = 0;
        while ((child = child.previousSibling) !== null) {
          if (child.nodeType === 1) {
            i += 1;
          }
        }
        return i;
      }
      return void 0;
    }
    function eq2(index2) {
      if (typeof index2 === "undefined") {
        return this;
      }
      var length = this.length;
      var returnIndex;
      if (index2 > length - 1) {
        return new Dom7([]);
      }
      if (index2 < 0) {
        returnIndex = length + index2;
        if (returnIndex < 0) {
          return new Dom7([]);
        }
        return new Dom7([this[returnIndex]]);
      }
      return new Dom7([this[index2]]);
    }
    function append() {
      var args = [], len = arguments.length;
      while (len--)
        args[len] = arguments[len];
      var newChild;
      for (var k = 0; k < args.length; k += 1) {
        newChild = args[k];
        for (var i = 0; i < this.length; i += 1) {
          if (typeof newChild === "string") {
            var tempDiv = doc.createElement("div");
            tempDiv.innerHTML = newChild;
            while (tempDiv.firstChild) {
              this[i].appendChild(tempDiv.firstChild);
            }
          } else if (newChild instanceof Dom7) {
            for (var j = 0; j < newChild.length; j += 1) {
              this[i].appendChild(newChild[j]);
            }
          } else {
            this[i].appendChild(newChild);
          }
        }
      }
      return this;
    }
    function prepend(newChild) {
      var i;
      var j;
      for (i = 0; i < this.length; i += 1) {
        if (typeof newChild === "string") {
          var tempDiv = doc.createElement("div");
          tempDiv.innerHTML = newChild;
          for (j = tempDiv.childNodes.length - 1; j >= 0; j -= 1) {
            this[i].insertBefore(tempDiv.childNodes[j], this[i].childNodes[0]);
          }
        } else if (newChild instanceof Dom7) {
          for (j = 0; j < newChild.length; j += 1) {
            this[i].insertBefore(newChild[j], this[i].childNodes[0]);
          }
        } else {
          this[i].insertBefore(newChild, this[i].childNodes[0]);
        }
      }
      return this;
    }
    function next(selector) {
      if (this.length > 0) {
        if (selector) {
          if (this[0].nextElementSibling && $(this[0].nextElementSibling).is(selector)) {
            return new Dom7([this[0].nextElementSibling]);
          }
          return new Dom7([]);
        }
        if (this[0].nextElementSibling) {
          return new Dom7([this[0].nextElementSibling]);
        }
        return new Dom7([]);
      }
      return new Dom7([]);
    }
    function nextAll(selector) {
      var nextEls = [];
      var el = this[0];
      if (!el) {
        return new Dom7([]);
      }
      while (el.nextElementSibling) {
        var next2 = el.nextElementSibling;
        if (selector) {
          if ($(next2).is(selector)) {
            nextEls.push(next2);
          }
        } else {
          nextEls.push(next2);
        }
        el = next2;
      }
      return new Dom7(nextEls);
    }
    function prev(selector) {
      if (this.length > 0) {
        var el = this[0];
        if (selector) {
          if (el.previousElementSibling && $(el.previousElementSibling).is(selector)) {
            return new Dom7([el.previousElementSibling]);
          }
          return new Dom7([]);
        }
        if (el.previousElementSibling) {
          return new Dom7([el.previousElementSibling]);
        }
        return new Dom7([]);
      }
      return new Dom7([]);
    }
    function prevAll(selector) {
      var prevEls = [];
      var el = this[0];
      if (!el) {
        return new Dom7([]);
      }
      while (el.previousElementSibling) {
        var prev2 = el.previousElementSibling;
        if (selector) {
          if ($(prev2).is(selector)) {
            prevEls.push(prev2);
          }
        } else {
          prevEls.push(prev2);
        }
        el = prev2;
      }
      return new Dom7(prevEls);
    }
    function parent(selector) {
      var parents2 = [];
      for (var i = 0; i < this.length; i += 1) {
        if (this[i].parentNode !== null) {
          if (selector) {
            if ($(this[i].parentNode).is(selector)) {
              parents2.push(this[i].parentNode);
            }
          } else {
            parents2.push(this[i].parentNode);
          }
        }
      }
      return $(unique(parents2));
    }
    function parents(selector) {
      var parents2 = [];
      for (var i = 0; i < this.length; i += 1) {
        var parent2 = this[i].parentNode;
        while (parent2) {
          if (selector) {
            if ($(parent2).is(selector)) {
              parents2.push(parent2);
            }
          } else {
            parents2.push(parent2);
          }
          parent2 = parent2.parentNode;
        }
      }
      return $(unique(parents2));
    }
    function closest(selector) {
      var closest2 = this;
      if (typeof selector === "undefined") {
        return new Dom7([]);
      }
      if (!closest2.is(selector)) {
        closest2 = closest2.parents(selector).eq(0);
      }
      return closest2;
    }
    function find(selector) {
      var foundElements = [];
      for (var i = 0; i < this.length; i += 1) {
        var found = this[i].querySelectorAll(selector);
        for (var j = 0; j < found.length; j += 1) {
          foundElements.push(found[j]);
        }
      }
      return new Dom7(foundElements);
    }
    function children(selector) {
      var children2 = [];
      for (var i = 0; i < this.length; i += 1) {
        var childNodes = this[i].childNodes;
        for (var j = 0; j < childNodes.length; j += 1) {
          if (!selector) {
            if (childNodes[j].nodeType === 1) {
              children2.push(childNodes[j]);
            }
          } else if (childNodes[j].nodeType === 1 && $(childNodes[j]).is(selector)) {
            children2.push(childNodes[j]);
          }
        }
      }
      return new Dom7(unique(children2));
    }
    function remove() {
      for (var i = 0; i < this.length; i += 1) {
        if (this[i].parentNode) {
          this[i].parentNode.removeChild(this[i]);
        }
      }
      return this;
    }
    function add() {
      var args = [], len = arguments.length;
      while (len--)
        args[len] = arguments[len];
      var dom = this;
      var i;
      var j;
      for (i = 0; i < args.length; i += 1) {
        var toAdd = $(args[i]);
        for (j = 0; j < toAdd.length; j += 1) {
          dom[dom.length] = toAdd[j];
          dom.length += 1;
        }
      }
      return dom;
    }
    var Methods = {
      addClass,
      removeClass,
      hasClass,
      toggleClass,
      attr,
      removeAttr,
      data,
      transform,
      transition,
      on,
      off,
      trigger,
      transitionEnd,
      outerWidth,
      outerHeight,
      offset,
      css,
      each,
      html,
      text,
      is,
      index,
      eq: eq2,
      append,
      prepend,
      next,
      nextAll,
      prev,
      prevAll,
      parent,
      parents,
      closest,
      find,
      children,
      remove,
      add,
      styles
    };
    Object.keys(Methods).forEach(function(methodName) {
      $.fn[methodName] = $.fn[methodName] || Methods[methodName];
    });
    var Utils = {
      deleteProps: function deleteProps(obj) {
        var object = obj;
        Object.keys(object).forEach(function(key) {
          try {
            object[key] = null;
          } catch (e) {
          }
          try {
            delete object[key];
          } catch (e) {
          }
        });
      },
      nextTick: function nextTick(callback, delay) {
        if (delay === void 0)
          delay = 0;
        return setTimeout(callback, delay);
      },
      now: function now2() {
        return Date.now();
      },
      getTranslate: function getTranslate2(el, axis) {
        if (axis === void 0)
          axis = "x";
        var matrix;
        var curTransform;
        var transformMatrix;
        var curStyle = win.getComputedStyle(el, null);
        if (win.WebKitCSSMatrix) {
          curTransform = curStyle.transform || curStyle.webkitTransform;
          if (curTransform.split(",").length > 6) {
            curTransform = curTransform.split(", ").map(function(a) {
              return a.replace(",", ".");
            }).join(", ");
          }
          transformMatrix = new win.WebKitCSSMatrix(curTransform === "none" ? "" : curTransform);
        } else {
          transformMatrix = curStyle.MozTransform || curStyle.OTransform || curStyle.MsTransform || curStyle.msTransform || curStyle.transform || curStyle.getPropertyValue("transform").replace("translate(", "matrix(1, 0, 0, 1,");
          matrix = transformMatrix.toString().split(",");
        }
        if (axis === "x") {
          if (win.WebKitCSSMatrix) {
            curTransform = transformMatrix.m41;
          } else if (matrix.length === 16) {
            curTransform = parseFloat(matrix[12]);
          } else {
            curTransform = parseFloat(matrix[4]);
          }
        }
        if (axis === "y") {
          if (win.WebKitCSSMatrix) {
            curTransform = transformMatrix.m42;
          } else if (matrix.length === 16) {
            curTransform = parseFloat(matrix[13]);
          } else {
            curTransform = parseFloat(matrix[5]);
          }
        }
        return curTransform || 0;
      },
      parseUrlQuery: function parseUrlQuery(url) {
        var query = {};
        var urlToParse = url || win.location.href;
        var i;
        var params;
        var param;
        var length;
        if (typeof urlToParse === "string" && urlToParse.length) {
          urlToParse = urlToParse.indexOf("?") > -1 ? urlToParse.replace(/\S*\?/, "") : "";
          params = urlToParse.split("&").filter(function(paramsPart) {
            return paramsPart !== "";
          });
          length = params.length;
          for (i = 0; i < length; i += 1) {
            param = params[i].replace(/#\S+/g, "").split("=");
            query[decodeURIComponent(param[0])] = typeof param[1] === "undefined" ? void 0 : decodeURIComponent(param[1]) || "";
          }
        }
        return query;
      },
      isObject: function isObject2(o) {
        return typeof o === "object" && o !== null && o.constructor && o.constructor === Object;
      },
      extend: function extend() {
        var args = [], len$1 = arguments.length;
        while (len$1--)
          args[len$1] = arguments[len$1];
        var to = Object(args[0]);
        for (var i = 1; i < args.length; i += 1) {
          var nextSource = args[i];
          if (nextSource !== void 0 && nextSource !== null) {
            var keysArray = Object.keys(Object(nextSource));
            for (var nextIndex = 0, len = keysArray.length; nextIndex < len; nextIndex += 1) {
              var nextKey = keysArray[nextIndex];
              var desc = Object.getOwnPropertyDescriptor(nextSource, nextKey);
              if (desc !== void 0 && desc.enumerable) {
                if (Utils.isObject(to[nextKey]) && Utils.isObject(nextSource[nextKey])) {
                  Utils.extend(to[nextKey], nextSource[nextKey]);
                } else if (!Utils.isObject(to[nextKey]) && Utils.isObject(nextSource[nextKey])) {
                  to[nextKey] = {};
                  Utils.extend(to[nextKey], nextSource[nextKey]);
                } else {
                  to[nextKey] = nextSource[nextKey];
                }
              }
            }
          }
        }
        return to;
      }
    };
    var Support = function Support2() {
      var testDiv = doc.createElement("div");
      return {
        touch: win.Modernizr && win.Modernizr.touch === true || function checkTouch() {
          return !!(win.navigator.maxTouchPoints > 0 || "ontouchstart" in win || win.DocumentTouch && doc instanceof win.DocumentTouch);
        }(),
        pointerEvents: !!(win.navigator.pointerEnabled || win.PointerEvent || "maxTouchPoints" in win.navigator && win.navigator.maxTouchPoints > 0),
        prefixedPointerEvents: !!win.navigator.msPointerEnabled,
        transition: function checkTransition() {
          var style2 = testDiv.style;
          return "transition" in style2 || "webkitTransition" in style2 || "MozTransition" in style2;
        }(),
        transforms3d: win.Modernizr && win.Modernizr.csstransforms3d === true || function checkTransforms3d() {
          var style2 = testDiv.style;
          return "webkitPerspective" in style2 || "MozPerspective" in style2 || "OPerspective" in style2 || "MsPerspective" in style2 || "perspective" in style2;
        }(),
        flexbox: function checkFlexbox() {
          var style2 = testDiv.style;
          var styles2 = "alignItems webkitAlignItems webkitBoxAlign msFlexAlign mozBoxAlign webkitFlexDirection msFlexDirection mozBoxDirection mozBoxOrient webkitBoxDirection webkitBoxOrient".split(" ");
          for (var i = 0; i < styles2.length; i += 1) {
            if (styles2[i] in style2) {
              return true;
            }
          }
          return false;
        }(),
        observer: function checkObserver() {
          return "MutationObserver" in win || "WebkitMutationObserver" in win;
        }(),
        passiveListener: function checkPassiveListener() {
          var supportsPassive = false;
          try {
            var opts = Object.defineProperty({}, "passive", {
              // eslint-disable-next-line
              get: function get2() {
                supportsPassive = true;
              }
            });
            win.addEventListener("testPassiveListener", null, opts);
          } catch (e) {
          }
          return supportsPassive;
        }(),
        gestures: function checkGestures() {
          return "ongesturestart" in win;
        }()
      };
    }();
    var Browser = function Browser2() {
      function isSafari() {
        var ua = win.navigator.userAgent.toLowerCase();
        return ua.indexOf("safari") >= 0 && ua.indexOf("chrome") < 0 && ua.indexOf("android") < 0;
      }
      return {
        isIE: !!win.navigator.userAgent.match(/Trident/g) || !!win.navigator.userAgent.match(/MSIE/g),
        isEdge: !!win.navigator.userAgent.match(/Edge/g),
        isSafari: isSafari(),
        isUiWebView: /(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/i.test(win.navigator.userAgent)
      };
    }();
    var SwiperClass = function SwiperClass2(params) {
      if (params === void 0)
        params = {};
      var self2 = this;
      self2.params = params;
      self2.eventsListeners = {};
      if (self2.params && self2.params.on) {
        Object.keys(self2.params.on).forEach(function(eventName) {
          self2.on(eventName, self2.params.on[eventName]);
        });
      }
    };
    var staticAccessors = { components: { configurable: true } };
    SwiperClass.prototype.on = function on2(events2, handler, priority) {
      var self2 = this;
      if (typeof handler !== "function") {
        return self2;
      }
      var method = priority ? "unshift" : "push";
      events2.split(" ").forEach(function(event) {
        if (!self2.eventsListeners[event]) {
          self2.eventsListeners[event] = [];
        }
        self2.eventsListeners[event][method](handler);
      });
      return self2;
    };
    SwiperClass.prototype.once = function once(events2, handler, priority) {
      var self2 = this;
      if (typeof handler !== "function") {
        return self2;
      }
      function onceHandler() {
        var args = [], len = arguments.length;
        while (len--)
          args[len] = arguments[len];
        handler.apply(self2, args);
        self2.off(events2, onceHandler);
        if (onceHandler.f7proxy) {
          delete onceHandler.f7proxy;
        }
      }
      onceHandler.f7proxy = handler;
      return self2.on(events2, onceHandler, priority);
    };
    SwiperClass.prototype.off = function off2(events2, handler) {
      var self2 = this;
      if (!self2.eventsListeners) {
        return self2;
      }
      events2.split(" ").forEach(function(event) {
        if (typeof handler === "undefined") {
          self2.eventsListeners[event] = [];
        } else if (self2.eventsListeners[event] && self2.eventsListeners[event].length) {
          self2.eventsListeners[event].forEach(function(eventHandler, index2) {
            if (eventHandler === handler || eventHandler.f7proxy && eventHandler.f7proxy === handler) {
              self2.eventsListeners[event].splice(index2, 1);
            }
          });
        }
      });
      return self2;
    };
    SwiperClass.prototype.emit = function emit() {
      var args = [], len = arguments.length;
      while (len--)
        args[len] = arguments[len];
      var self2 = this;
      if (!self2.eventsListeners) {
        return self2;
      }
      var events2;
      var data2;
      var context;
      if (typeof args[0] === "string" || Array.isArray(args[0])) {
        events2 = args[0];
        data2 = args.slice(1, args.length);
        context = self2;
      } else {
        events2 = args[0].events;
        data2 = args[0].data;
        context = args[0].context || self2;
      }
      var eventsArray = Array.isArray(events2) ? events2 : events2.split(" ");
      eventsArray.forEach(function(event) {
        if (self2.eventsListeners && self2.eventsListeners[event]) {
          var handlers = [];
          self2.eventsListeners[event].forEach(function(eventHandler) {
            handlers.push(eventHandler);
          });
          handlers.forEach(function(eventHandler) {
            eventHandler.apply(context, data2);
          });
        }
      });
      return self2;
    };
    SwiperClass.prototype.useModulesParams = function useModulesParams(instanceParams) {
      var instance = this;
      if (!instance.modules) {
        return;
      }
      Object.keys(instance.modules).forEach(function(moduleName) {
        var module3 = instance.modules[moduleName];
        if (module3.params) {
          Utils.extend(instanceParams, module3.params);
        }
      });
    };
    SwiperClass.prototype.useModules = function useModules(modulesParams) {
      if (modulesParams === void 0)
        modulesParams = {};
      var instance = this;
      if (!instance.modules) {
        return;
      }
      Object.keys(instance.modules).forEach(function(moduleName) {
        var module3 = instance.modules[moduleName];
        var moduleParams = modulesParams[moduleName] || {};
        if (module3.instance) {
          Object.keys(module3.instance).forEach(function(modulePropName) {
            var moduleProp = module3.instance[modulePropName];
            if (typeof moduleProp === "function") {
              instance[modulePropName] = moduleProp.bind(instance);
            } else {
              instance[modulePropName] = moduleProp;
            }
          });
        }
        if (module3.on && instance.on) {
          Object.keys(module3.on).forEach(function(moduleEventName) {
            instance.on(moduleEventName, module3.on[moduleEventName]);
          });
        }
        if (module3.create) {
          module3.create.bind(instance)(moduleParams);
        }
      });
    };
    staticAccessors.components.set = function(components2) {
      var Class = this;
      if (!Class.use) {
        return;
      }
      Class.use(components2);
    };
    SwiperClass.installModule = function installModule(module3) {
      var params = [], len = arguments.length - 1;
      while (len-- > 0)
        params[len] = arguments[len + 1];
      var Class = this;
      if (!Class.prototype.modules) {
        Class.prototype.modules = {};
      }
      var name = module3.name || Object.keys(Class.prototype.modules).length + "_" + Utils.now();
      Class.prototype.modules[name] = module3;
      if (module3.proto) {
        Object.keys(module3.proto).forEach(function(key) {
          Class.prototype[key] = module3.proto[key];
        });
      }
      if (module3.static) {
        Object.keys(module3.static).forEach(function(key) {
          Class[key] = module3.static[key];
        });
      }
      if (module3.install) {
        module3.install.apply(Class, params);
      }
      return Class;
    };
    SwiperClass.use = function use(module3) {
      var params = [], len = arguments.length - 1;
      while (len-- > 0)
        params[len] = arguments[len + 1];
      var Class = this;
      if (Array.isArray(module3)) {
        module3.forEach(function(m) {
          return Class.installModule(m);
        });
        return Class;
      }
      return Class.installModule.apply(Class, [module3].concat(params));
    };
    Object.defineProperties(SwiperClass, staticAccessors);
    function updateSize() {
      var swiper2 = this;
      var width;
      var height;
      var $el = swiper2.$el;
      if (typeof swiper2.params.width !== "undefined") {
        width = swiper2.params.width;
      } else {
        width = $el[0].clientWidth;
      }
      if (typeof swiper2.params.height !== "undefined") {
        height = swiper2.params.height;
      } else {
        height = $el[0].clientHeight;
      }
      if (width === 0 && swiper2.isHorizontal() || height === 0 && swiper2.isVertical()) {
        return;
      }
      width = width - parseInt($el.css("padding-left"), 10) - parseInt($el.css("padding-right"), 10);
      height = height - parseInt($el.css("padding-top"), 10) - parseInt($el.css("padding-bottom"), 10);
      Utils.extend(swiper2, {
        width,
        height,
        size: swiper2.isHorizontal() ? width : height
      });
    }
    function updateSlides() {
      var swiper2 = this;
      var params = swiper2.params;
      var $wrapperEl = swiper2.$wrapperEl;
      var swiperSize = swiper2.size;
      var rtl = swiper2.rtlTranslate;
      var wrongRTL = swiper2.wrongRTL;
      var isVirtual = swiper2.virtual && params.virtual.enabled;
      var previousSlidesLength = isVirtual ? swiper2.virtual.slides.length : swiper2.slides.length;
      var slides = $wrapperEl.children("." + swiper2.params.slideClass);
      var slidesLength = isVirtual ? swiper2.virtual.slides.length : slides.length;
      var snapGrid = [];
      var slidesGrid = [];
      var slidesSizesGrid = [];
      var offsetBefore = params.slidesOffsetBefore;
      if (typeof offsetBefore === "function") {
        offsetBefore = params.slidesOffsetBefore.call(swiper2);
      }
      var offsetAfter = params.slidesOffsetAfter;
      if (typeof offsetAfter === "function") {
        offsetAfter = params.slidesOffsetAfter.call(swiper2);
      }
      var previousSnapGridLength = swiper2.snapGrid.length;
      var previousSlidesGridLength = swiper2.snapGrid.length;
      var spaceBetween = params.spaceBetween;
      var slidePosition = -offsetBefore;
      var prevSlideSize = 0;
      var index2 = 0;
      if (typeof swiperSize === "undefined") {
        return;
      }
      if (typeof spaceBetween === "string" && spaceBetween.indexOf("%") >= 0) {
        spaceBetween = parseFloat(spaceBetween.replace("%", "")) / 100 * swiperSize;
      }
      swiper2.virtualSize = -spaceBetween;
      if (rtl) {
        slides.css({ marginLeft: "", marginTop: "" });
      } else {
        slides.css({ marginRight: "", marginBottom: "" });
      }
      var slidesNumberEvenToRows;
      if (params.slidesPerColumn > 1) {
        if (Math.floor(slidesLength / params.slidesPerColumn) === slidesLength / swiper2.params.slidesPerColumn) {
          slidesNumberEvenToRows = slidesLength;
        } else {
          slidesNumberEvenToRows = Math.ceil(slidesLength / params.slidesPerColumn) * params.slidesPerColumn;
        }
        if (params.slidesPerView !== "auto" && params.slidesPerColumnFill === "row") {
          slidesNumberEvenToRows = Math.max(slidesNumberEvenToRows, params.slidesPerView * params.slidesPerColumn);
        }
      }
      var slideSize;
      var slidesPerColumn = params.slidesPerColumn;
      var slidesPerRow = slidesNumberEvenToRows / slidesPerColumn;
      var numFullColumns = Math.floor(slidesLength / params.slidesPerColumn);
      for (var i = 0; i < slidesLength; i += 1) {
        slideSize = 0;
        var slide2 = slides.eq(i);
        if (params.slidesPerColumn > 1) {
          var newSlideOrderIndex = void 0;
          var column = void 0;
          var row = void 0;
          if (params.slidesPerColumnFill === "column" || params.slidesPerColumnFill === "row" && params.slidesPerGroup > 1) {
            if (params.slidesPerColumnFill === "column") {
              column = Math.floor(i / slidesPerColumn);
              row = i - column * slidesPerColumn;
              if (column > numFullColumns || column === numFullColumns && row === slidesPerColumn - 1) {
                row += 1;
                if (row >= slidesPerColumn) {
                  row = 0;
                  column += 1;
                }
              }
            } else {
              var groupIndex = Math.floor(i / params.slidesPerGroup);
              row = Math.floor(i / params.slidesPerView) - groupIndex * params.slidesPerColumn;
              column = i - row * params.slidesPerView - groupIndex * params.slidesPerView;
            }
            newSlideOrderIndex = column + row * slidesNumberEvenToRows / slidesPerColumn;
            slide2.css({
              "-webkit-box-ordinal-group": newSlideOrderIndex,
              "-moz-box-ordinal-group": newSlideOrderIndex,
              "-ms-flex-order": newSlideOrderIndex,
              "-webkit-order": newSlideOrderIndex,
              order: newSlideOrderIndex
            });
          } else {
            row = Math.floor(i / slidesPerRow);
            column = i - row * slidesPerRow;
          }
          slide2.css(
            "margin-" + (swiper2.isHorizontal() ? "top" : "left"),
            row !== 0 && params.spaceBetween && params.spaceBetween + "px"
          ).attr("data-swiper-column", column).attr("data-swiper-row", row);
        }
        if (slide2.css("display") === "none") {
          continue;
        }
        if (params.slidesPerView === "auto") {
          var slideStyles = win.getComputedStyle(slide2[0], null);
          var currentTransform = slide2[0].style.transform;
          var currentWebKitTransform = slide2[0].style.webkitTransform;
          if (currentTransform) {
            slide2[0].style.transform = "none";
          }
          if (currentWebKitTransform) {
            slide2[0].style.webkitTransform = "none";
          }
          if (params.roundLengths) {
            slideSize = swiper2.isHorizontal() ? slide2.outerWidth(true) : slide2.outerHeight(true);
          } else {
            if (swiper2.isHorizontal()) {
              var width = parseFloat(slideStyles.getPropertyValue("width"));
              var paddingLeft = parseFloat(slideStyles.getPropertyValue("padding-left"));
              var paddingRight = parseFloat(slideStyles.getPropertyValue("padding-right"));
              var marginLeft = parseFloat(slideStyles.getPropertyValue("margin-left"));
              var marginRight = parseFloat(slideStyles.getPropertyValue("margin-right"));
              var boxSizing = slideStyles.getPropertyValue("box-sizing");
              if (boxSizing && boxSizing === "border-box" && !Browser.isIE) {
                slideSize = width + marginLeft + marginRight;
              } else {
                slideSize = width + paddingLeft + paddingRight + marginLeft + marginRight;
              }
            } else {
              var height = parseFloat(slideStyles.getPropertyValue("height"));
              var paddingTop = parseFloat(slideStyles.getPropertyValue("padding-top"));
              var paddingBottom = parseFloat(slideStyles.getPropertyValue("padding-bottom"));
              var marginTop = parseFloat(slideStyles.getPropertyValue("margin-top"));
              var marginBottom = parseFloat(slideStyles.getPropertyValue("margin-bottom"));
              var boxSizing$1 = slideStyles.getPropertyValue("box-sizing");
              if (boxSizing$1 && boxSizing$1 === "border-box" && !Browser.isIE) {
                slideSize = height + marginTop + marginBottom;
              } else {
                slideSize = height + paddingTop + paddingBottom + marginTop + marginBottom;
              }
            }
          }
          if (currentTransform) {
            slide2[0].style.transform = currentTransform;
          }
          if (currentWebKitTransform) {
            slide2[0].style.webkitTransform = currentWebKitTransform;
          }
          if (params.roundLengths) {
            slideSize = Math.floor(slideSize);
          }
        } else {
          slideSize = (swiperSize - (params.slidesPerView - 1) * spaceBetween) / params.slidesPerView;
          if (params.roundLengths) {
            slideSize = Math.floor(slideSize);
          }
          if (slides[i]) {
            if (swiper2.isHorizontal()) {
              slides[i].style.width = slideSize + "px";
            } else {
              slides[i].style.height = slideSize + "px";
            }
          }
        }
        if (slides[i]) {
          slides[i].swiperSlideSize = slideSize;
        }
        slidesSizesGrid.push(slideSize);
        if (params.centeredSlides) {
          slidePosition = slidePosition + slideSize / 2 + prevSlideSize / 2 + spaceBetween;
          if (prevSlideSize === 0 && i !== 0) {
            slidePosition = slidePosition - swiperSize / 2 - spaceBetween;
          }
          if (i === 0) {
            slidePosition = slidePosition - swiperSize / 2 - spaceBetween;
          }
          if (Math.abs(slidePosition) < 1 / 1e3) {
            slidePosition = 0;
          }
          if (params.roundLengths) {
            slidePosition = Math.floor(slidePosition);
          }
          if (index2 % params.slidesPerGroup === 0) {
            snapGrid.push(slidePosition);
          }
          slidesGrid.push(slidePosition);
        } else {
          if (params.roundLengths) {
            slidePosition = Math.floor(slidePosition);
          }
          if (index2 % params.slidesPerGroup === 0) {
            snapGrid.push(slidePosition);
          }
          slidesGrid.push(slidePosition);
          slidePosition = slidePosition + slideSize + spaceBetween;
        }
        swiper2.virtualSize += slideSize + spaceBetween;
        prevSlideSize = slideSize;
        index2 += 1;
      }
      swiper2.virtualSize = Math.max(swiper2.virtualSize, swiperSize) + offsetAfter;
      var newSlidesGrid;
      if (rtl && wrongRTL && (params.effect === "slide" || params.effect === "coverflow")) {
        $wrapperEl.css({ width: swiper2.virtualSize + params.spaceBetween + "px" });
      }
      if (!Support.flexbox || params.setWrapperSize) {
        if (swiper2.isHorizontal()) {
          $wrapperEl.css({ width: swiper2.virtualSize + params.spaceBetween + "px" });
        } else {
          $wrapperEl.css({ height: swiper2.virtualSize + params.spaceBetween + "px" });
        }
      }
      if (params.slidesPerColumn > 1) {
        swiper2.virtualSize = (slideSize + params.spaceBetween) * slidesNumberEvenToRows;
        swiper2.virtualSize = Math.ceil(swiper2.virtualSize / params.slidesPerColumn) - params.spaceBetween;
        if (swiper2.isHorizontal()) {
          $wrapperEl.css({ width: swiper2.virtualSize + params.spaceBetween + "px" });
        } else {
          $wrapperEl.css({ height: swiper2.virtualSize + params.spaceBetween + "px" });
        }
        if (params.centeredSlides) {
          newSlidesGrid = [];
          for (var i$1 = 0; i$1 < snapGrid.length; i$1 += 1) {
            var slidesGridItem = snapGrid[i$1];
            if (params.roundLengths) {
              slidesGridItem = Math.floor(slidesGridItem);
            }
            if (snapGrid[i$1] < swiper2.virtualSize + snapGrid[0]) {
              newSlidesGrid.push(slidesGridItem);
            }
          }
          snapGrid = newSlidesGrid;
        }
      }
      if (!params.centeredSlides) {
        newSlidesGrid = [];
        for (var i$2 = 0; i$2 < snapGrid.length; i$2 += 1) {
          var slidesGridItem$1 = snapGrid[i$2];
          if (params.roundLengths) {
            slidesGridItem$1 = Math.floor(slidesGridItem$1);
          }
          if (snapGrid[i$2] <= swiper2.virtualSize - swiperSize) {
            newSlidesGrid.push(slidesGridItem$1);
          }
        }
        snapGrid = newSlidesGrid;
        if (Math.floor(swiper2.virtualSize - swiperSize) - Math.floor(snapGrid[snapGrid.length - 1]) > 1) {
          snapGrid.push(swiper2.virtualSize - swiperSize);
        }
      }
      if (snapGrid.length === 0) {
        snapGrid = [0];
      }
      if (params.spaceBetween !== 0) {
        if (swiper2.isHorizontal()) {
          if (rtl) {
            slides.css({ marginLeft: spaceBetween + "px" });
          } else {
            slides.css({ marginRight: spaceBetween + "px" });
          }
        } else {
          slides.css({ marginBottom: spaceBetween + "px" });
        }
      }
      if (params.centerInsufficientSlides) {
        var allSlidesSize = 0;
        slidesSizesGrid.forEach(function(slideSizeValue) {
          allSlidesSize += slideSizeValue + (params.spaceBetween ? params.spaceBetween : 0);
        });
        allSlidesSize -= params.spaceBetween;
        if (allSlidesSize < swiperSize) {
          var allSlidesOffset = (swiperSize - allSlidesSize) / 2;
          snapGrid.forEach(function(snap, snapIndex) {
            snapGrid[snapIndex] = snap - allSlidesOffset;
          });
          slidesGrid.forEach(function(snap, snapIndex) {
            slidesGrid[snapIndex] = snap + allSlidesOffset;
          });
        }
      }
      Utils.extend(swiper2, {
        slides,
        snapGrid,
        slidesGrid,
        slidesSizesGrid
      });
      if (slidesLength !== previousSlidesLength) {
        swiper2.emit("slidesLengthChange");
      }
      if (snapGrid.length !== previousSnapGridLength) {
        if (swiper2.params.watchOverflow) {
          swiper2.checkOverflow();
        }
        swiper2.emit("snapGridLengthChange");
      }
      if (slidesGrid.length !== previousSlidesGridLength) {
        swiper2.emit("slidesGridLengthChange");
      }
      if (params.watchSlidesProgress || params.watchSlidesVisibility) {
        swiper2.updateSlidesOffset();
      }
    }
    function updateAutoHeight(speed) {
      var swiper2 = this;
      var activeSlides = [];
      var newHeight = 0;
      var i;
      if (typeof speed === "number") {
        swiper2.setTransition(speed);
      } else if (speed === true) {
        swiper2.setTransition(swiper2.params.speed);
      }
      if (swiper2.params.slidesPerView !== "auto" && swiper2.params.slidesPerView > 1) {
        for (i = 0; i < Math.ceil(swiper2.params.slidesPerView); i += 1) {
          var index2 = swiper2.activeIndex + i;
          if (index2 > swiper2.slides.length) {
            break;
          }
          activeSlides.push(swiper2.slides.eq(index2)[0]);
        }
      } else {
        activeSlides.push(swiper2.slides.eq(swiper2.activeIndex)[0]);
      }
      for (i = 0; i < activeSlides.length; i += 1) {
        if (typeof activeSlides[i] !== "undefined") {
          var height = activeSlides[i].offsetHeight;
          newHeight = height > newHeight ? height : newHeight;
        }
      }
      if (newHeight) {
        swiper2.$wrapperEl.css("height", newHeight + "px");
      }
    }
    function updateSlidesOffset() {
      var swiper2 = this;
      var slides = swiper2.slides;
      for (var i = 0; i < slides.length; i += 1) {
        slides[i].swiperSlideOffset = swiper2.isHorizontal() ? slides[i].offsetLeft : slides[i].offsetTop;
      }
    }
    function updateSlidesProgress(translate2) {
      if (translate2 === void 0)
        translate2 = this && this.translate || 0;
      var swiper2 = this;
      var params = swiper2.params;
      var slides = swiper2.slides;
      var rtl = swiper2.rtlTranslate;
      if (slides.length === 0) {
        return;
      }
      if (typeof slides[0].swiperSlideOffset === "undefined") {
        swiper2.updateSlidesOffset();
      }
      var offsetCenter = -translate2;
      if (rtl) {
        offsetCenter = translate2;
      }
      slides.removeClass(params.slideVisibleClass);
      swiper2.visibleSlidesIndexes = [];
      swiper2.visibleSlides = [];
      for (var i = 0; i < slides.length; i += 1) {
        var slide2 = slides[i];
        var slideProgress = (offsetCenter + (params.centeredSlides ? swiper2.minTranslate() : 0) - slide2.swiperSlideOffset) / (slide2.swiperSlideSize + params.spaceBetween);
        if (params.watchSlidesVisibility) {
          var slideBefore = -(offsetCenter - slide2.swiperSlideOffset);
          var slideAfter = slideBefore + swiper2.slidesSizesGrid[i];
          var isVisible = slideBefore >= 0 && slideBefore < swiper2.size - 1 || slideAfter > 1 && slideAfter <= swiper2.size || slideBefore <= 0 && slideAfter >= swiper2.size;
          if (isVisible) {
            swiper2.visibleSlides.push(slide2);
            swiper2.visibleSlidesIndexes.push(i);
            slides.eq(i).addClass(params.slideVisibleClass);
          }
        }
        slide2.progress = rtl ? -slideProgress : slideProgress;
      }
      swiper2.visibleSlides = $(swiper2.visibleSlides);
    }
    function updateProgress(translate2) {
      if (translate2 === void 0)
        translate2 = this && this.translate || 0;
      var swiper2 = this;
      var params = swiper2.params;
      var translatesDiff = swiper2.maxTranslate() - swiper2.minTranslate();
      var progress = swiper2.progress;
      var isBeginning = swiper2.isBeginning;
      var isEnd = swiper2.isEnd;
      var wasBeginning = isBeginning;
      var wasEnd = isEnd;
      if (translatesDiff === 0) {
        progress = 0;
        isBeginning = true;
        isEnd = true;
      } else {
        progress = (translate2 - swiper2.minTranslate()) / translatesDiff;
        isBeginning = progress <= 0;
        isEnd = progress >= 1;
      }
      Utils.extend(swiper2, {
        progress,
        isBeginning,
        isEnd
      });
      if (params.watchSlidesProgress || params.watchSlidesVisibility) {
        swiper2.updateSlidesProgress(translate2);
      }
      if (isBeginning && !wasBeginning) {
        swiper2.emit("reachBeginning toEdge");
      }
      if (isEnd && !wasEnd) {
        swiper2.emit("reachEnd toEdge");
      }
      if (wasBeginning && !isBeginning || wasEnd && !isEnd) {
        swiper2.emit("fromEdge");
      }
      swiper2.emit("progress", progress);
    }
    function updateSlidesClasses() {
      var swiper2 = this;
      var slides = swiper2.slides;
      var params = swiper2.params;
      var $wrapperEl = swiper2.$wrapperEl;
      var activeIndex = swiper2.activeIndex;
      var realIndex = swiper2.realIndex;
      var isVirtual = swiper2.virtual && params.virtual.enabled;
      slides.removeClass(params.slideActiveClass + " " + params.slideNextClass + " " + params.slidePrevClass + " " + params.slideDuplicateActiveClass + " " + params.slideDuplicateNextClass + " " + params.slideDuplicatePrevClass);
      var activeSlide;
      if (isVirtual) {
        activeSlide = swiper2.$wrapperEl.find("." + params.slideClass + '[data-swiper-slide-index="' + activeIndex + '"]');
      } else {
        activeSlide = slides.eq(activeIndex);
      }
      activeSlide.addClass(params.slideActiveClass);
      if (params.loop) {
        if (activeSlide.hasClass(params.slideDuplicateClass)) {
          $wrapperEl.children("." + params.slideClass + ":not(." + params.slideDuplicateClass + ')[data-swiper-slide-index="' + realIndex + '"]').addClass(params.slideDuplicateActiveClass);
        } else {
          $wrapperEl.children("." + params.slideClass + "." + params.slideDuplicateClass + '[data-swiper-slide-index="' + realIndex + '"]').addClass(params.slideDuplicateActiveClass);
        }
      }
      var nextSlide = activeSlide.nextAll("." + params.slideClass).eq(0).addClass(params.slideNextClass);
      if (params.loop && nextSlide.length === 0) {
        nextSlide = slides.eq(0);
        nextSlide.addClass(params.slideNextClass);
      }
      var prevSlide = activeSlide.prevAll("." + params.slideClass).eq(0).addClass(params.slidePrevClass);
      if (params.loop && prevSlide.length === 0) {
        prevSlide = slides.eq(-1);
        prevSlide.addClass(params.slidePrevClass);
      }
      if (params.loop) {
        if (nextSlide.hasClass(params.slideDuplicateClass)) {
          $wrapperEl.children("." + params.slideClass + ":not(." + params.slideDuplicateClass + ')[data-swiper-slide-index="' + nextSlide.attr("data-swiper-slide-index") + '"]').addClass(params.slideDuplicateNextClass);
        } else {
          $wrapperEl.children("." + params.slideClass + "." + params.slideDuplicateClass + '[data-swiper-slide-index="' + nextSlide.attr("data-swiper-slide-index") + '"]').addClass(params.slideDuplicateNextClass);
        }
        if (prevSlide.hasClass(params.slideDuplicateClass)) {
          $wrapperEl.children("." + params.slideClass + ":not(." + params.slideDuplicateClass + ')[data-swiper-slide-index="' + prevSlide.attr("data-swiper-slide-index") + '"]').addClass(params.slideDuplicatePrevClass);
        } else {
          $wrapperEl.children("." + params.slideClass + "." + params.slideDuplicateClass + '[data-swiper-slide-index="' + prevSlide.attr("data-swiper-slide-index") + '"]').addClass(params.slideDuplicatePrevClass);
        }
      }
    }
    function updateActiveIndex(newActiveIndex) {
      var swiper2 = this;
      var translate2 = swiper2.rtlTranslate ? swiper2.translate : -swiper2.translate;
      var slidesGrid = swiper2.slidesGrid;
      var snapGrid = swiper2.snapGrid;
      var params = swiper2.params;
      var previousIndex = swiper2.activeIndex;
      var previousRealIndex = swiper2.realIndex;
      var previousSnapIndex = swiper2.snapIndex;
      var activeIndex = newActiveIndex;
      var snapIndex;
      if (typeof activeIndex === "undefined") {
        for (var i = 0; i < slidesGrid.length; i += 1) {
          if (typeof slidesGrid[i + 1] !== "undefined") {
            if (translate2 >= slidesGrid[i] && translate2 < slidesGrid[i + 1] - (slidesGrid[i + 1] - slidesGrid[i]) / 2) {
              activeIndex = i;
            } else if (translate2 >= slidesGrid[i] && translate2 < slidesGrid[i + 1]) {
              activeIndex = i + 1;
            }
          } else if (translate2 >= slidesGrid[i]) {
            activeIndex = i;
          }
        }
        if (params.normalizeSlideIndex) {
          if (activeIndex < 0 || typeof activeIndex === "undefined") {
            activeIndex = 0;
          }
        }
      }
      if (snapGrid.indexOf(translate2) >= 0) {
        snapIndex = snapGrid.indexOf(translate2);
      } else {
        snapIndex = Math.floor(activeIndex / params.slidesPerGroup);
      }
      if (snapIndex >= snapGrid.length) {
        snapIndex = snapGrid.length - 1;
      }
      if (activeIndex === previousIndex) {
        if (snapIndex !== previousSnapIndex) {
          swiper2.snapIndex = snapIndex;
          swiper2.emit("snapIndexChange");
        }
        return;
      }
      var realIndex = parseInt(swiper2.slides.eq(activeIndex).attr("data-swiper-slide-index") || activeIndex, 10);
      Utils.extend(swiper2, {
        snapIndex,
        realIndex,
        previousIndex,
        activeIndex
      });
      swiper2.emit("activeIndexChange");
      swiper2.emit("snapIndexChange");
      if (previousRealIndex !== realIndex) {
        swiper2.emit("realIndexChange");
      }
      if (swiper2.initialized || swiper2.runCallbacksOnInit) {
        swiper2.emit("slideChange");
      }
    }
    function updateClickedSlide(e) {
      var swiper2 = this;
      var params = swiper2.params;
      var slide2 = $(e.target).closest("." + params.slideClass)[0];
      var slideFound = false;
      if (slide2) {
        for (var i = 0; i < swiper2.slides.length; i += 1) {
          if (swiper2.slides[i] === slide2) {
            slideFound = true;
          }
        }
      }
      if (slide2 && slideFound) {
        swiper2.clickedSlide = slide2;
        if (swiper2.virtual && swiper2.params.virtual.enabled) {
          swiper2.clickedIndex = parseInt($(slide2).attr("data-swiper-slide-index"), 10);
        } else {
          swiper2.clickedIndex = $(slide2).index();
        }
      } else {
        swiper2.clickedSlide = void 0;
        swiper2.clickedIndex = void 0;
        return;
      }
      if (params.slideToClickedSlide && swiper2.clickedIndex !== void 0 && swiper2.clickedIndex !== swiper2.activeIndex) {
        swiper2.slideToClickedSlide();
      }
    }
    var update = {
      updateSize,
      updateSlides,
      updateAutoHeight,
      updateSlidesOffset,
      updateSlidesProgress,
      updateProgress,
      updateSlidesClasses,
      updateActiveIndex,
      updateClickedSlide
    };
    function getTranslate(axis) {
      if (axis === void 0)
        axis = this.isHorizontal() ? "x" : "y";
      var swiper2 = this;
      var params = swiper2.params;
      var rtl = swiper2.rtlTranslate;
      var translate2 = swiper2.translate;
      var $wrapperEl = swiper2.$wrapperEl;
      if (params.virtualTranslate) {
        return rtl ? -translate2 : translate2;
      }
      var currentTranslate = Utils.getTranslate($wrapperEl[0], axis);
      if (rtl) {
        currentTranslate = -currentTranslate;
      }
      return currentTranslate || 0;
    }
    function setTranslate(translate2, byController) {
      var swiper2 = this;
      var rtl = swiper2.rtlTranslate;
      var params = swiper2.params;
      var $wrapperEl = swiper2.$wrapperEl;
      var progress = swiper2.progress;
      var x = 0;
      var y = 0;
      var z = 0;
      if (swiper2.isHorizontal()) {
        x = rtl ? -translate2 : translate2;
      } else {
        y = translate2;
      }
      if (params.roundLengths) {
        x = Math.floor(x);
        y = Math.floor(y);
      }
      if (!params.virtualTranslate) {
        if (Support.transforms3d) {
          $wrapperEl.transform("translate3d(" + x + "px, " + y + "px, " + z + "px)");
        } else {
          $wrapperEl.transform("translate(" + x + "px, " + y + "px)");
        }
      }
      swiper2.previousTranslate = swiper2.translate;
      swiper2.translate = swiper2.isHorizontal() ? x : y;
      var newProgress;
      var translatesDiff = swiper2.maxTranslate() - swiper2.minTranslate();
      if (translatesDiff === 0) {
        newProgress = 0;
      } else {
        newProgress = (translate2 - swiper2.minTranslate()) / translatesDiff;
      }
      if (newProgress !== progress) {
        swiper2.updateProgress(translate2);
      }
      swiper2.emit("setTranslate", swiper2.translate, byController);
    }
    function minTranslate() {
      return -this.snapGrid[0];
    }
    function maxTranslate() {
      return -this.snapGrid[this.snapGrid.length - 1];
    }
    var translate = {
      getTranslate,
      setTranslate,
      minTranslate,
      maxTranslate
    };
    function setTransition(duration, byController) {
      var swiper2 = this;
      swiper2.$wrapperEl.transition(duration);
      swiper2.emit("setTransition", duration, byController);
    }
    function transitionStart(runCallbacks, direction) {
      if (runCallbacks === void 0)
        runCallbacks = true;
      var swiper2 = this;
      var activeIndex = swiper2.activeIndex;
      var params = swiper2.params;
      var previousIndex = swiper2.previousIndex;
      if (params.autoHeight) {
        swiper2.updateAutoHeight();
      }
      var dir = direction;
      if (!dir) {
        if (activeIndex > previousIndex) {
          dir = "next";
        } else if (activeIndex < previousIndex) {
          dir = "prev";
        } else {
          dir = "reset";
        }
      }
      swiper2.emit("transitionStart");
      if (runCallbacks && activeIndex !== previousIndex) {
        if (dir === "reset") {
          swiper2.emit("slideResetTransitionStart");
          return;
        }
        swiper2.emit("slideChangeTransitionStart");
        if (dir === "next") {
          swiper2.emit("slideNextTransitionStart");
        } else {
          swiper2.emit("slidePrevTransitionStart");
        }
      }
    }
    function transitionEnd$1(runCallbacks, direction) {
      if (runCallbacks === void 0)
        runCallbacks = true;
      var swiper2 = this;
      var activeIndex = swiper2.activeIndex;
      var previousIndex = swiper2.previousIndex;
      swiper2.animating = false;
      swiper2.setTransition(0);
      var dir = direction;
      if (!dir) {
        if (activeIndex > previousIndex) {
          dir = "next";
        } else if (activeIndex < previousIndex) {
          dir = "prev";
        } else {
          dir = "reset";
        }
      }
      swiper2.emit("transitionEnd");
      if (runCallbacks && activeIndex !== previousIndex) {
        if (dir === "reset") {
          swiper2.emit("slideResetTransitionEnd");
          return;
        }
        swiper2.emit("slideChangeTransitionEnd");
        if (dir === "next") {
          swiper2.emit("slideNextTransitionEnd");
        } else {
          swiper2.emit("slidePrevTransitionEnd");
        }
      }
    }
    var transition$1 = {
      setTransition,
      transitionStart,
      transitionEnd: transitionEnd$1
    };
    function slideTo(index2, speed, runCallbacks, internal) {
      if (index2 === void 0)
        index2 = 0;
      if (speed === void 0)
        speed = this.params.speed;
      if (runCallbacks === void 0)
        runCallbacks = true;
      var swiper2 = this;
      var slideIndex = index2;
      if (slideIndex < 0) {
        slideIndex = 0;
      }
      var params = swiper2.params;
      var snapGrid = swiper2.snapGrid;
      var slidesGrid = swiper2.slidesGrid;
      var previousIndex = swiper2.previousIndex;
      var activeIndex = swiper2.activeIndex;
      var rtl = swiper2.rtlTranslate;
      if (swiper2.animating && params.preventInteractionOnTransition) {
        return false;
      }
      var snapIndex = Math.floor(slideIndex / params.slidesPerGroup);
      if (snapIndex >= snapGrid.length) {
        snapIndex = snapGrid.length - 1;
      }
      if ((activeIndex || params.initialSlide || 0) === (previousIndex || 0) && runCallbacks) {
        swiper2.emit("beforeSlideChangeStart");
      }
      var translate2 = -snapGrid[snapIndex];
      swiper2.updateProgress(translate2);
      if (params.normalizeSlideIndex) {
        for (var i = 0; i < slidesGrid.length; i += 1) {
          if (-Math.floor(translate2 * 100) >= Math.floor(slidesGrid[i] * 100)) {
            slideIndex = i;
          }
        }
      }
      if (swiper2.initialized && slideIndex !== activeIndex) {
        if (!swiper2.allowSlideNext && translate2 < swiper2.translate && translate2 < swiper2.minTranslate()) {
          return false;
        }
        if (!swiper2.allowSlidePrev && translate2 > swiper2.translate && translate2 > swiper2.maxTranslate()) {
          if ((activeIndex || 0) !== slideIndex) {
            return false;
          }
        }
      }
      var direction;
      if (slideIndex > activeIndex) {
        direction = "next";
      } else if (slideIndex < activeIndex) {
        direction = "prev";
      } else {
        direction = "reset";
      }
      if (rtl && -translate2 === swiper2.translate || !rtl && translate2 === swiper2.translate) {
        swiper2.updateActiveIndex(slideIndex);
        if (params.autoHeight) {
          swiper2.updateAutoHeight();
        }
        swiper2.updateSlidesClasses();
        if (params.effect !== "slide") {
          swiper2.setTranslate(translate2);
        }
        if (direction !== "reset") {
          swiper2.transitionStart(runCallbacks, direction);
          swiper2.transitionEnd(runCallbacks, direction);
        }
        return false;
      }
      if (speed === 0 || !Support.transition) {
        swiper2.setTransition(0);
        swiper2.setTranslate(translate2);
        swiper2.updateActiveIndex(slideIndex);
        swiper2.updateSlidesClasses();
        swiper2.emit("beforeTransitionStart", speed, internal);
        swiper2.transitionStart(runCallbacks, direction);
        swiper2.transitionEnd(runCallbacks, direction);
      } else {
        swiper2.setTransition(speed);
        swiper2.setTranslate(translate2);
        swiper2.updateActiveIndex(slideIndex);
        swiper2.updateSlidesClasses();
        swiper2.emit("beforeTransitionStart", speed, internal);
        swiper2.transitionStart(runCallbacks, direction);
        if (!swiper2.animating) {
          swiper2.animating = true;
          if (!swiper2.onSlideToWrapperTransitionEnd) {
            swiper2.onSlideToWrapperTransitionEnd = function transitionEnd2(e) {
              if (!swiper2 || swiper2.destroyed) {
                return;
              }
              if (e.target !== this) {
                return;
              }
              swiper2.$wrapperEl[0].removeEventListener("transitionend", swiper2.onSlideToWrapperTransitionEnd);
              swiper2.$wrapperEl[0].removeEventListener("webkitTransitionEnd", swiper2.onSlideToWrapperTransitionEnd);
              swiper2.onSlideToWrapperTransitionEnd = null;
              delete swiper2.onSlideToWrapperTransitionEnd;
              swiper2.transitionEnd(runCallbacks, direction);
            };
          }
          swiper2.$wrapperEl[0].addEventListener("transitionend", swiper2.onSlideToWrapperTransitionEnd);
          swiper2.$wrapperEl[0].addEventListener("webkitTransitionEnd", swiper2.onSlideToWrapperTransitionEnd);
        }
      }
      return true;
    }
    function slideToLoop(index2, speed, runCallbacks, internal) {
      if (index2 === void 0)
        index2 = 0;
      if (speed === void 0)
        speed = this.params.speed;
      if (runCallbacks === void 0)
        runCallbacks = true;
      var swiper2 = this;
      var newIndex = index2;
      if (swiper2.params.loop) {
        newIndex += swiper2.loopedSlides;
      }
      return swiper2.slideTo(newIndex, speed, runCallbacks, internal);
    }
    function slideNext(speed, runCallbacks, internal) {
      if (speed === void 0)
        speed = this.params.speed;
      if (runCallbacks === void 0)
        runCallbacks = true;
      var swiper2 = this;
      var params = swiper2.params;
      var animating = swiper2.animating;
      if (params.loop) {
        if (animating) {
          return false;
        }
        swiper2.loopFix();
        swiper2._clientLeft = swiper2.$wrapperEl[0].clientLeft;
        return swiper2.slideTo(swiper2.activeIndex + params.slidesPerGroup, speed, runCallbacks, internal);
      }
      return swiper2.slideTo(swiper2.activeIndex + params.slidesPerGroup, speed, runCallbacks, internal);
    }
    function slidePrev(speed, runCallbacks, internal) {
      if (speed === void 0)
        speed = this.params.speed;
      if (runCallbacks === void 0)
        runCallbacks = true;
      var swiper2 = this;
      var params = swiper2.params;
      var animating = swiper2.animating;
      var snapGrid = swiper2.snapGrid;
      var slidesGrid = swiper2.slidesGrid;
      var rtlTranslate = swiper2.rtlTranslate;
      if (params.loop) {
        if (animating) {
          return false;
        }
        swiper2.loopFix();
        swiper2._clientLeft = swiper2.$wrapperEl[0].clientLeft;
      }
      var translate2 = rtlTranslate ? swiper2.translate : -swiper2.translate;
      function normalize(val) {
        if (val < 0) {
          return -Math.floor(Math.abs(val));
        }
        return Math.floor(val);
      }
      var normalizedTranslate = normalize(translate2);
      var normalizedSnapGrid = snapGrid.map(function(val) {
        return normalize(val);
      });
      slidesGrid.map(function(val) {
        return normalize(val);
      });
      snapGrid[normalizedSnapGrid.indexOf(normalizedTranslate)];
      var prevSnap = snapGrid[normalizedSnapGrid.indexOf(normalizedTranslate) - 1];
      var prevIndex;
      if (typeof prevSnap !== "undefined") {
        prevIndex = slidesGrid.indexOf(prevSnap);
        if (prevIndex < 0) {
          prevIndex = swiper2.activeIndex - 1;
        }
      }
      return swiper2.slideTo(prevIndex, speed, runCallbacks, internal);
    }
    function slideReset(speed, runCallbacks, internal) {
      if (speed === void 0)
        speed = this.params.speed;
      if (runCallbacks === void 0)
        runCallbacks = true;
      var swiper2 = this;
      return swiper2.slideTo(swiper2.activeIndex, speed, runCallbacks, internal);
    }
    function slideToClosest(speed, runCallbacks, internal) {
      if (speed === void 0)
        speed = this.params.speed;
      if (runCallbacks === void 0)
        runCallbacks = true;
      var swiper2 = this;
      var index2 = swiper2.activeIndex;
      var snapIndex = Math.floor(index2 / swiper2.params.slidesPerGroup);
      if (snapIndex < swiper2.snapGrid.length - 1) {
        var translate2 = swiper2.rtlTranslate ? swiper2.translate : -swiper2.translate;
        var currentSnap = swiper2.snapGrid[snapIndex];
        var nextSnap = swiper2.snapGrid[snapIndex + 1];
        if (translate2 - currentSnap > (nextSnap - currentSnap) / 2) {
          index2 = swiper2.params.slidesPerGroup;
        }
      }
      return swiper2.slideTo(index2, speed, runCallbacks, internal);
    }
    function slideToClickedSlide() {
      var swiper2 = this;
      var params = swiper2.params;
      var $wrapperEl = swiper2.$wrapperEl;
      var slidesPerView = params.slidesPerView === "auto" ? swiper2.slidesPerViewDynamic() : params.slidesPerView;
      var slideToIndex = swiper2.clickedIndex;
      var realIndex;
      if (params.loop) {
        if (swiper2.animating) {
          return;
        }
        realIndex = parseInt($(swiper2.clickedSlide).attr("data-swiper-slide-index"), 10);
        if (params.centeredSlides) {
          if (slideToIndex < swiper2.loopedSlides - slidesPerView / 2 || slideToIndex > swiper2.slides.length - swiper2.loopedSlides + slidesPerView / 2) {
            swiper2.loopFix();
            slideToIndex = $wrapperEl.children("." + params.slideClass + '[data-swiper-slide-index="' + realIndex + '"]:not(.' + params.slideDuplicateClass + ")").eq(0).index();
            Utils.nextTick(function() {
              swiper2.slideTo(slideToIndex);
            });
          } else {
            swiper2.slideTo(slideToIndex);
          }
        } else if (slideToIndex > swiper2.slides.length - slidesPerView) {
          swiper2.loopFix();
          slideToIndex = $wrapperEl.children("." + params.slideClass + '[data-swiper-slide-index="' + realIndex + '"]:not(.' + params.slideDuplicateClass + ")").eq(0).index();
          Utils.nextTick(function() {
            swiper2.slideTo(slideToIndex);
          });
        } else {
          swiper2.slideTo(slideToIndex);
        }
      } else {
        swiper2.slideTo(slideToIndex);
      }
    }
    var slide = {
      slideTo,
      slideToLoop,
      slideNext,
      slidePrev,
      slideReset,
      slideToClosest,
      slideToClickedSlide
    };
    function loopCreate() {
      var swiper2 = this;
      var params = swiper2.params;
      var $wrapperEl = swiper2.$wrapperEl;
      $wrapperEl.children("." + params.slideClass + "." + params.slideDuplicateClass).remove();
      var slides = $wrapperEl.children("." + params.slideClass);
      if (params.loopFillGroupWithBlank) {
        var blankSlidesNum = params.slidesPerGroup - slides.length % params.slidesPerGroup;
        if (blankSlidesNum !== params.slidesPerGroup) {
          for (var i = 0; i < blankSlidesNum; i += 1) {
            var blankNode = $(doc.createElement("div")).addClass(params.slideClass + " " + params.slideBlankClass);
            $wrapperEl.append(blankNode);
          }
          slides = $wrapperEl.children("." + params.slideClass);
        }
      }
      if (params.slidesPerView === "auto" && !params.loopedSlides) {
        params.loopedSlides = slides.length;
      }
      swiper2.loopedSlides = parseInt(params.loopedSlides || params.slidesPerView, 10);
      swiper2.loopedSlides += params.loopAdditionalSlides;
      if (swiper2.loopedSlides > slides.length) {
        swiper2.loopedSlides = slides.length;
      }
      var prependSlides = [];
      var appendSlides = [];
      slides.each(function(index2, el) {
        var slide2 = $(el);
        if (index2 < swiper2.loopedSlides) {
          appendSlides.push(el);
        }
        if (index2 < slides.length && index2 >= slides.length - swiper2.loopedSlides) {
          prependSlides.push(el);
        }
        slide2.attr("data-swiper-slide-index", index2);
      });
      for (var i$1 = 0; i$1 < appendSlides.length; i$1 += 1) {
        $wrapperEl.append($(appendSlides[i$1].cloneNode(true)).addClass(params.slideDuplicateClass));
      }
      for (var i$2 = prependSlides.length - 1; i$2 >= 0; i$2 -= 1) {
        $wrapperEl.prepend($(prependSlides[i$2].cloneNode(true)).addClass(params.slideDuplicateClass));
      }
    }
    function loopFix() {
      var swiper2 = this;
      var params = swiper2.params;
      var activeIndex = swiper2.activeIndex;
      var slides = swiper2.slides;
      var loopedSlides = swiper2.loopedSlides;
      var allowSlidePrev = swiper2.allowSlidePrev;
      var allowSlideNext = swiper2.allowSlideNext;
      var snapGrid = swiper2.snapGrid;
      var rtl = swiper2.rtlTranslate;
      var newIndex;
      swiper2.allowSlidePrev = true;
      swiper2.allowSlideNext = true;
      var snapTranslate = -snapGrid[activeIndex];
      var diff = snapTranslate - swiper2.getTranslate();
      if (activeIndex < loopedSlides) {
        newIndex = slides.length - loopedSlides * 3 + activeIndex;
        newIndex += loopedSlides;
        var slideChanged = swiper2.slideTo(newIndex, 0, false, true);
        if (slideChanged && diff !== 0) {
          swiper2.setTranslate((rtl ? -swiper2.translate : swiper2.translate) - diff);
        }
      } else if (params.slidesPerView === "auto" && activeIndex >= loopedSlides * 2 || activeIndex >= slides.length - loopedSlides) {
        newIndex = -slides.length + activeIndex + loopedSlides;
        newIndex += loopedSlides;
        var slideChanged$1 = swiper2.slideTo(newIndex, 0, false, true);
        if (slideChanged$1 && diff !== 0) {
          swiper2.setTranslate((rtl ? -swiper2.translate : swiper2.translate) - diff);
        }
      }
      swiper2.allowSlidePrev = allowSlidePrev;
      swiper2.allowSlideNext = allowSlideNext;
    }
    function loopDestroy() {
      var swiper2 = this;
      var $wrapperEl = swiper2.$wrapperEl;
      var params = swiper2.params;
      var slides = swiper2.slides;
      $wrapperEl.children("." + params.slideClass + "." + params.slideDuplicateClass + ",." + params.slideClass + "." + params.slideBlankClass).remove();
      slides.removeAttr("data-swiper-slide-index");
    }
    var loop = {
      loopCreate,
      loopFix,
      loopDestroy
    };
    function setGrabCursor(moving) {
      var swiper2 = this;
      if (Support.touch || !swiper2.params.simulateTouch || swiper2.params.watchOverflow && swiper2.isLocked) {
        return;
      }
      var el = swiper2.el;
      el.style.cursor = "move";
      el.style.cursor = moving ? "-webkit-grabbing" : "-webkit-grab";
      el.style.cursor = moving ? "-moz-grabbin" : "-moz-grab";
      el.style.cursor = moving ? "grabbing" : "grab";
    }
    function unsetGrabCursor() {
      var swiper2 = this;
      if (Support.touch || swiper2.params.watchOverflow && swiper2.isLocked) {
        return;
      }
      swiper2.el.style.cursor = "";
    }
    var grabCursor = {
      setGrabCursor,
      unsetGrabCursor
    };
    function appendSlide(slides) {
      var swiper2 = this;
      var $wrapperEl = swiper2.$wrapperEl;
      var params = swiper2.params;
      if (params.loop) {
        swiper2.loopDestroy();
      }
      if (typeof slides === "object" && "length" in slides) {
        for (var i = 0; i < slides.length; i += 1) {
          if (slides[i]) {
            $wrapperEl.append(slides[i]);
          }
        }
      } else {
        $wrapperEl.append(slides);
      }
      if (params.loop) {
        swiper2.loopCreate();
      }
      if (!(params.observer && Support.observer)) {
        swiper2.update();
      }
    }
    function prependSlide(slides) {
      var swiper2 = this;
      var params = swiper2.params;
      var $wrapperEl = swiper2.$wrapperEl;
      var activeIndex = swiper2.activeIndex;
      if (params.loop) {
        swiper2.loopDestroy();
      }
      var newActiveIndex = activeIndex + 1;
      if (typeof slides === "object" && "length" in slides) {
        for (var i = 0; i < slides.length; i += 1) {
          if (slides[i]) {
            $wrapperEl.prepend(slides[i]);
          }
        }
        newActiveIndex = activeIndex + slides.length;
      } else {
        $wrapperEl.prepend(slides);
      }
      if (params.loop) {
        swiper2.loopCreate();
      }
      if (!(params.observer && Support.observer)) {
        swiper2.update();
      }
      swiper2.slideTo(newActiveIndex, 0, false);
    }
    function addSlide(index2, slides) {
      var swiper2 = this;
      var $wrapperEl = swiper2.$wrapperEl;
      var params = swiper2.params;
      var activeIndex = swiper2.activeIndex;
      var activeIndexBuffer = activeIndex;
      if (params.loop) {
        activeIndexBuffer -= swiper2.loopedSlides;
        swiper2.loopDestroy();
        swiper2.slides = $wrapperEl.children("." + params.slideClass);
      }
      var baseLength = swiper2.slides.length;
      if (index2 <= 0) {
        swiper2.prependSlide(slides);
        return;
      }
      if (index2 >= baseLength) {
        swiper2.appendSlide(slides);
        return;
      }
      var newActiveIndex = activeIndexBuffer > index2 ? activeIndexBuffer + 1 : activeIndexBuffer;
      var slidesBuffer = [];
      for (var i = baseLength - 1; i >= index2; i -= 1) {
        var currentSlide = swiper2.slides.eq(i);
        currentSlide.remove();
        slidesBuffer.unshift(currentSlide);
      }
      if (typeof slides === "object" && "length" in slides) {
        for (var i$1 = 0; i$1 < slides.length; i$1 += 1) {
          if (slides[i$1]) {
            $wrapperEl.append(slides[i$1]);
          }
        }
        newActiveIndex = activeIndexBuffer > index2 ? activeIndexBuffer + slides.length : activeIndexBuffer;
      } else {
        $wrapperEl.append(slides);
      }
      for (var i$2 = 0; i$2 < slidesBuffer.length; i$2 += 1) {
        $wrapperEl.append(slidesBuffer[i$2]);
      }
      if (params.loop) {
        swiper2.loopCreate();
      }
      if (!(params.observer && Support.observer)) {
        swiper2.update();
      }
      if (params.loop) {
        swiper2.slideTo(newActiveIndex + swiper2.loopedSlides, 0, false);
      } else {
        swiper2.slideTo(newActiveIndex, 0, false);
      }
    }
    function removeSlide(slidesIndexes) {
      var swiper2 = this;
      var params = swiper2.params;
      var $wrapperEl = swiper2.$wrapperEl;
      var activeIndex = swiper2.activeIndex;
      var activeIndexBuffer = activeIndex;
      if (params.loop) {
        activeIndexBuffer -= swiper2.loopedSlides;
        swiper2.loopDestroy();
        swiper2.slides = $wrapperEl.children("." + params.slideClass);
      }
      var newActiveIndex = activeIndexBuffer;
      var indexToRemove;
      if (typeof slidesIndexes === "object" && "length" in slidesIndexes) {
        for (var i = 0; i < slidesIndexes.length; i += 1) {
          indexToRemove = slidesIndexes[i];
          if (swiper2.slides[indexToRemove]) {
            swiper2.slides.eq(indexToRemove).remove();
          }
          if (indexToRemove < newActiveIndex) {
            newActiveIndex -= 1;
          }
        }
        newActiveIndex = Math.max(newActiveIndex, 0);
      } else {
        indexToRemove = slidesIndexes;
        if (swiper2.slides[indexToRemove]) {
          swiper2.slides.eq(indexToRemove).remove();
        }
        if (indexToRemove < newActiveIndex) {
          newActiveIndex -= 1;
        }
        newActiveIndex = Math.max(newActiveIndex, 0);
      }
      if (params.loop) {
        swiper2.loopCreate();
      }
      if (!(params.observer && Support.observer)) {
        swiper2.update();
      }
      if (params.loop) {
        swiper2.slideTo(newActiveIndex + swiper2.loopedSlides, 0, false);
      } else {
        swiper2.slideTo(newActiveIndex, 0, false);
      }
    }
    function removeAllSlides() {
      var swiper2 = this;
      var slidesIndexes = [];
      for (var i = 0; i < swiper2.slides.length; i += 1) {
        slidesIndexes.push(i);
      }
      swiper2.removeSlide(slidesIndexes);
    }
    var manipulation = {
      appendSlide,
      prependSlide,
      addSlide,
      removeSlide,
      removeAllSlides
    };
    var Device = function Device2() {
      var ua = win.navigator.userAgent;
      var device = {
        ios: false,
        android: false,
        androidChrome: false,
        desktop: false,
        windows: false,
        iphone: false,
        ipod: false,
        ipad: false,
        cordova: win.cordova || win.phonegap,
        phonegap: win.cordova || win.phonegap
      };
      var windows = ua.match(/(Windows Phone);?[\s\/]+([\d.]+)?/);
      var android = ua.match(/(Android);?[\s\/]+([\d.]+)?/);
      var ipad = ua.match(/(iPad).*OS\s([\d_]+)/);
      var ipod = ua.match(/(iPod)(.*OS\s([\d_]+))?/);
      var iphone = !ipad && ua.match(/(iPhone\sOS|iOS)\s([\d_]+)/);
      if (windows) {
        device.os = "windows";
        device.osVersion = windows[2];
        device.windows = true;
      }
      if (android && !windows) {
        device.os = "android";
        device.osVersion = android[2];
        device.android = true;
        device.androidChrome = ua.toLowerCase().indexOf("chrome") >= 0;
      }
      if (ipad || iphone || ipod) {
        device.os = "ios";
        device.ios = true;
      }
      if (iphone && !ipod) {
        device.osVersion = iphone[2].replace(/_/g, ".");
        device.iphone = true;
      }
      if (ipad) {
        device.osVersion = ipad[2].replace(/_/g, ".");
        device.ipad = true;
      }
      if (ipod) {
        device.osVersion = ipod[3] ? ipod[3].replace(/_/g, ".") : null;
        device.iphone = true;
      }
      if (device.ios && device.osVersion && ua.indexOf("Version/") >= 0) {
        if (device.osVersion.split(".")[0] === "10") {
          device.osVersion = ua.toLowerCase().split("version/")[1].split(" ")[0];
        }
      }
      device.desktop = !(device.os || device.android || device.webView);
      device.webView = (iphone || ipad || ipod) && ua.match(/.*AppleWebKit(?!.*Safari)/i);
      if (device.os && device.os === "ios") {
        var osVersionArr = device.osVersion.split(".");
        var metaViewport = doc.querySelector('meta[name="viewport"]');
        device.minimalUi = !device.webView && (ipod || iphone) && (osVersionArr[0] * 1 === 7 ? osVersionArr[1] * 1 >= 1 : osVersionArr[0] * 1 > 7) && metaViewport && metaViewport.getAttribute("content").indexOf("minimal-ui") >= 0;
      }
      device.pixelRatio = win.devicePixelRatio || 1;
      return device;
    }();
    function onTouchStart(event) {
      var swiper2 = this;
      var data2 = swiper2.touchEventsData;
      var params = swiper2.params;
      var touches = swiper2.touches;
      if (swiper2.animating && params.preventInteractionOnTransition) {
        return;
      }
      var e = event;
      if (e.originalEvent) {
        e = e.originalEvent;
      }
      data2.isTouchEvent = e.type === "touchstart";
      if (!data2.isTouchEvent && "which" in e && e.which === 3) {
        return;
      }
      if (!data2.isTouchEvent && "button" in e && e.button > 0) {
        return;
      }
      if (data2.isTouched && data2.isMoved) {
        return;
      }
      if (params.noSwiping && $(e.target).closest(params.noSwipingSelector ? params.noSwipingSelector : "." + params.noSwipingClass)[0]) {
        swiper2.allowClick = true;
        return;
      }
      if (params.swipeHandler) {
        if (!$(e).closest(params.swipeHandler)[0]) {
          return;
        }
      }
      touches.currentX = e.type === "touchstart" ? e.targetTouches[0].pageX : e.pageX;
      touches.currentY = e.type === "touchstart" ? e.targetTouches[0].pageY : e.pageY;
      var startX = touches.currentX;
      var startY = touches.currentY;
      var edgeSwipeDetection = params.edgeSwipeDetection || params.iOSEdgeSwipeDetection;
      var edgeSwipeThreshold = params.edgeSwipeThreshold || params.iOSEdgeSwipeThreshold;
      if (edgeSwipeDetection && (startX <= edgeSwipeThreshold || startX >= win.screen.width - edgeSwipeThreshold)) {
        return;
      }
      Utils.extend(data2, {
        isTouched: true,
        isMoved: false,
        allowTouchCallbacks: true,
        isScrolling: void 0,
        startMoving: void 0
      });
      touches.startX = startX;
      touches.startY = startY;
      data2.touchStartTime = Utils.now();
      swiper2.allowClick = true;
      swiper2.updateSize();
      swiper2.swipeDirection = void 0;
      if (params.threshold > 0) {
        data2.allowThresholdMove = false;
      }
      if (e.type !== "touchstart") {
        var preventDefault = true;
        if ($(e.target).is(data2.formElements)) {
          preventDefault = false;
        }
        if (doc.activeElement && $(doc.activeElement).is(data2.formElements) && doc.activeElement !== e.target) {
          doc.activeElement.blur();
        }
        var shouldPreventDefault = preventDefault && swiper2.allowTouchMove && params.touchStartPreventDefault;
        if (params.touchStartForcePreventDefault || shouldPreventDefault) {
          e.preventDefault();
        }
      }
      swiper2.emit("touchStart", e);
    }
    function onTouchMove(event) {
      var swiper2 = this;
      var data2 = swiper2.touchEventsData;
      var params = swiper2.params;
      var touches = swiper2.touches;
      var rtl = swiper2.rtlTranslate;
      var e = event;
      if (e.originalEvent) {
        e = e.originalEvent;
      }
      if (!data2.isTouched) {
        if (data2.startMoving && data2.isScrolling) {
          swiper2.emit("touchMoveOpposite", e);
        }
        return;
      }
      if (data2.isTouchEvent && e.type === "mousemove") {
        return;
      }
      var pageX = e.type === "touchmove" ? e.targetTouches[0].pageX : e.pageX;
      var pageY = e.type === "touchmove" ? e.targetTouches[0].pageY : e.pageY;
      if (e.preventedByNestedSwiper) {
        touches.startX = pageX;
        touches.startY = pageY;
        return;
      }
      if (!swiper2.allowTouchMove) {
        swiper2.allowClick = false;
        if (data2.isTouched) {
          Utils.extend(touches, {
            startX: pageX,
            startY: pageY,
            currentX: pageX,
            currentY: pageY
          });
          data2.touchStartTime = Utils.now();
        }
        return;
      }
      if (data2.isTouchEvent && params.touchReleaseOnEdges && !params.loop) {
        if (swiper2.isVertical()) {
          if (pageY < touches.startY && swiper2.translate <= swiper2.maxTranslate() || pageY > touches.startY && swiper2.translate >= swiper2.minTranslate()) {
            data2.isTouched = false;
            data2.isMoved = false;
            return;
          }
        } else if (pageX < touches.startX && swiper2.translate <= swiper2.maxTranslate() || pageX > touches.startX && swiper2.translate >= swiper2.minTranslate()) {
          return;
        }
      }
      if (data2.isTouchEvent && doc.activeElement) {
        if (e.target === doc.activeElement && $(e.target).is(data2.formElements)) {
          data2.isMoved = true;
          swiper2.allowClick = false;
          return;
        }
      }
      if (data2.allowTouchCallbacks) {
        swiper2.emit("touchMove", e);
      }
      if (e.targetTouches && e.targetTouches.length > 1) {
        return;
      }
      touches.currentX = pageX;
      touches.currentY = pageY;
      var diffX = touches.currentX - touches.startX;
      var diffY = touches.currentY - touches.startY;
      if (swiper2.params.threshold && Math.sqrt(Math.pow(diffX, 2) + Math.pow(diffY, 2)) < swiper2.params.threshold) {
        return;
      }
      if (typeof data2.isScrolling === "undefined") {
        var touchAngle;
        if (swiper2.isHorizontal() && touches.currentY === touches.startY || swiper2.isVertical() && touches.currentX === touches.startX) {
          data2.isScrolling = false;
        } else {
          if (diffX * diffX + diffY * diffY >= 25) {
            touchAngle = Math.atan2(Math.abs(diffY), Math.abs(diffX)) * 180 / Math.PI;
            data2.isScrolling = swiper2.isHorizontal() ? touchAngle > params.touchAngle : 90 - touchAngle > params.touchAngle;
          }
        }
      }
      if (data2.isScrolling) {
        swiper2.emit("touchMoveOpposite", e);
      }
      if (typeof data2.startMoving === "undefined") {
        if (touches.currentX !== touches.startX || touches.currentY !== touches.startY) {
          data2.startMoving = true;
        }
      }
      if (data2.isScrolling) {
        data2.isTouched = false;
        return;
      }
      if (!data2.startMoving) {
        return;
      }
      swiper2.allowClick = false;
      e.preventDefault();
      if (params.touchMoveStopPropagation && !params.nested) {
        e.stopPropagation();
      }
      if (!data2.isMoved) {
        if (params.loop) {
          swiper2.loopFix();
        }
        data2.startTranslate = swiper2.getTranslate();
        swiper2.setTransition(0);
        if (swiper2.animating) {
          swiper2.$wrapperEl.trigger("webkitTransitionEnd transitionend");
        }
        data2.allowMomentumBounce = false;
        if (params.grabCursor && (swiper2.allowSlideNext === true || swiper2.allowSlidePrev === true)) {
          swiper2.setGrabCursor(true);
        }
        swiper2.emit("sliderFirstMove", e);
      }
      swiper2.emit("sliderMove", e);
      data2.isMoved = true;
      var diff = swiper2.isHorizontal() ? diffX : diffY;
      touches.diff = diff;
      diff *= params.touchRatio;
      if (rtl) {
        diff = -diff;
      }
      swiper2.swipeDirection = diff > 0 ? "prev" : "next";
      data2.currentTranslate = diff + data2.startTranslate;
      var disableParentSwiper = true;
      var resistanceRatio = params.resistanceRatio;
      if (params.touchReleaseOnEdges) {
        resistanceRatio = 0;
      }
      if (diff > 0 && data2.currentTranslate > swiper2.minTranslate()) {
        disableParentSwiper = false;
        if (params.resistance) {
          data2.currentTranslate = swiper2.minTranslate() - 1 + Math.pow(-swiper2.minTranslate() + data2.startTranslate + diff, resistanceRatio);
        }
      } else if (diff < 0 && data2.currentTranslate < swiper2.maxTranslate()) {
        disableParentSwiper = false;
        if (params.resistance) {
          data2.currentTranslate = swiper2.maxTranslate() + 1 - Math.pow(swiper2.maxTranslate() - data2.startTranslate - diff, resistanceRatio);
        }
      }
      if (disableParentSwiper) {
        e.preventedByNestedSwiper = true;
      }
      if (!swiper2.allowSlideNext && swiper2.swipeDirection === "next" && data2.currentTranslate < data2.startTranslate) {
        data2.currentTranslate = data2.startTranslate;
      }
      if (!swiper2.allowSlidePrev && swiper2.swipeDirection === "prev" && data2.currentTranslate > data2.startTranslate) {
        data2.currentTranslate = data2.startTranslate;
      }
      if (params.threshold > 0) {
        if (Math.abs(diff) > params.threshold || data2.allowThresholdMove) {
          if (!data2.allowThresholdMove) {
            data2.allowThresholdMove = true;
            touches.startX = touches.currentX;
            touches.startY = touches.currentY;
            data2.currentTranslate = data2.startTranslate;
            touches.diff = swiper2.isHorizontal() ? touches.currentX - touches.startX : touches.currentY - touches.startY;
            return;
          }
        } else {
          data2.currentTranslate = data2.startTranslate;
          return;
        }
      }
      if (!params.followFinger) {
        return;
      }
      if (params.freeMode || params.watchSlidesProgress || params.watchSlidesVisibility) {
        swiper2.updateActiveIndex();
        swiper2.updateSlidesClasses();
      }
      if (params.freeMode) {
        if (data2.velocities.length === 0) {
          data2.velocities.push({
            position: touches[swiper2.isHorizontal() ? "startX" : "startY"],
            time: data2.touchStartTime
          });
        }
        data2.velocities.push({
          position: touches[swiper2.isHorizontal() ? "currentX" : "currentY"],
          time: Utils.now()
        });
      }
      swiper2.updateProgress(data2.currentTranslate);
      swiper2.setTranslate(data2.currentTranslate);
    }
    function onTouchEnd(event) {
      var swiper2 = this;
      var data2 = swiper2.touchEventsData;
      var params = swiper2.params;
      var touches = swiper2.touches;
      var rtl = swiper2.rtlTranslate;
      var $wrapperEl = swiper2.$wrapperEl;
      var slidesGrid = swiper2.slidesGrid;
      var snapGrid = swiper2.snapGrid;
      var e = event;
      if (e.originalEvent) {
        e = e.originalEvent;
      }
      if (data2.allowTouchCallbacks) {
        swiper2.emit("touchEnd", e);
      }
      data2.allowTouchCallbacks = false;
      if (!data2.isTouched) {
        if (data2.isMoved && params.grabCursor) {
          swiper2.setGrabCursor(false);
        }
        data2.isMoved = false;
        data2.startMoving = false;
        return;
      }
      if (params.grabCursor && data2.isMoved && data2.isTouched && (swiper2.allowSlideNext === true || swiper2.allowSlidePrev === true)) {
        swiper2.setGrabCursor(false);
      }
      var touchEndTime = Utils.now();
      var timeDiff = touchEndTime - data2.touchStartTime;
      if (swiper2.allowClick) {
        swiper2.updateClickedSlide(e);
        swiper2.emit("tap", e);
        if (timeDiff < 300 && touchEndTime - data2.lastClickTime > 300) {
          if (data2.clickTimeout) {
            clearTimeout(data2.clickTimeout);
          }
          data2.clickTimeout = Utils.nextTick(function() {
            if (!swiper2 || swiper2.destroyed) {
              return;
            }
            swiper2.emit("click", e);
          }, 300);
        }
        if (timeDiff < 300 && touchEndTime - data2.lastClickTime < 300) {
          if (data2.clickTimeout) {
            clearTimeout(data2.clickTimeout);
          }
          swiper2.emit("doubleTap", e);
        }
      }
      data2.lastClickTime = Utils.now();
      Utils.nextTick(function() {
        if (!swiper2.destroyed) {
          swiper2.allowClick = true;
        }
      });
      if (!data2.isTouched || !data2.isMoved || !swiper2.swipeDirection || touches.diff === 0 || data2.currentTranslate === data2.startTranslate) {
        data2.isTouched = false;
        data2.isMoved = false;
        data2.startMoving = false;
        return;
      }
      data2.isTouched = false;
      data2.isMoved = false;
      data2.startMoving = false;
      var currentPos;
      if (params.followFinger) {
        currentPos = rtl ? swiper2.translate : -swiper2.translate;
      } else {
        currentPos = -data2.currentTranslate;
      }
      if (params.freeMode) {
        if (currentPos < -swiper2.minTranslate()) {
          swiper2.slideTo(swiper2.activeIndex);
          return;
        }
        if (currentPos > -swiper2.maxTranslate()) {
          if (swiper2.slides.length < snapGrid.length) {
            swiper2.slideTo(snapGrid.length - 1);
          } else {
            swiper2.slideTo(swiper2.slides.length - 1);
          }
          return;
        }
        if (params.freeModeMomentum) {
          if (data2.velocities.length > 1) {
            var lastMoveEvent = data2.velocities.pop();
            var velocityEvent = data2.velocities.pop();
            var distance = lastMoveEvent.position - velocityEvent.position;
            var time = lastMoveEvent.time - velocityEvent.time;
            swiper2.velocity = distance / time;
            swiper2.velocity /= 2;
            if (Math.abs(swiper2.velocity) < params.freeModeMinimumVelocity) {
              swiper2.velocity = 0;
            }
            if (time > 150 || Utils.now() - lastMoveEvent.time > 300) {
              swiper2.velocity = 0;
            }
          } else {
            swiper2.velocity = 0;
          }
          swiper2.velocity *= params.freeModeMomentumVelocityRatio;
          data2.velocities.length = 0;
          var momentumDuration = 1e3 * params.freeModeMomentumRatio;
          var momentumDistance = swiper2.velocity * momentumDuration;
          var newPosition = swiper2.translate + momentumDistance;
          if (rtl) {
            newPosition = -newPosition;
          }
          var doBounce = false;
          var afterBouncePosition;
          var bounceAmount = Math.abs(swiper2.velocity) * 20 * params.freeModeMomentumBounceRatio;
          var needsLoopFix;
          if (newPosition < swiper2.maxTranslate()) {
            if (params.freeModeMomentumBounce) {
              if (newPosition + swiper2.maxTranslate() < -bounceAmount) {
                newPosition = swiper2.maxTranslate() - bounceAmount;
              }
              afterBouncePosition = swiper2.maxTranslate();
              doBounce = true;
              data2.allowMomentumBounce = true;
            } else {
              newPosition = swiper2.maxTranslate();
            }
            if (params.loop && params.centeredSlides) {
              needsLoopFix = true;
            }
          } else if (newPosition > swiper2.minTranslate()) {
            if (params.freeModeMomentumBounce) {
              if (newPosition - swiper2.minTranslate() > bounceAmount) {
                newPosition = swiper2.minTranslate() + bounceAmount;
              }
              afterBouncePosition = swiper2.minTranslate();
              doBounce = true;
              data2.allowMomentumBounce = true;
            } else {
              newPosition = swiper2.minTranslate();
            }
            if (params.loop && params.centeredSlides) {
              needsLoopFix = true;
            }
          } else if (params.freeModeSticky) {
            var nextSlide;
            for (var j = 0; j < snapGrid.length; j += 1) {
              if (snapGrid[j] > -newPosition) {
                nextSlide = j;
                break;
              }
            }
            if (Math.abs(snapGrid[nextSlide] - newPosition) < Math.abs(snapGrid[nextSlide - 1] - newPosition) || swiper2.swipeDirection === "next") {
              newPosition = snapGrid[nextSlide];
            } else {
              newPosition = snapGrid[nextSlide - 1];
            }
            newPosition = -newPosition;
          }
          if (needsLoopFix) {
            swiper2.once("transitionEnd", function() {
              swiper2.loopFix();
            });
          }
          if (swiper2.velocity !== 0) {
            if (rtl) {
              momentumDuration = Math.abs((-newPosition - swiper2.translate) / swiper2.velocity);
            } else {
              momentumDuration = Math.abs((newPosition - swiper2.translate) / swiper2.velocity);
            }
          } else if (params.freeModeSticky) {
            swiper2.slideToClosest();
            return;
          }
          if (params.freeModeMomentumBounce && doBounce) {
            swiper2.updateProgress(afterBouncePosition);
            swiper2.setTransition(momentumDuration);
            swiper2.setTranslate(newPosition);
            swiper2.transitionStart(true, swiper2.swipeDirection);
            swiper2.animating = true;
            $wrapperEl.transitionEnd(function() {
              if (!swiper2 || swiper2.destroyed || !data2.allowMomentumBounce) {
                return;
              }
              swiper2.emit("momentumBounce");
              swiper2.setTransition(params.speed);
              swiper2.setTranslate(afterBouncePosition);
              $wrapperEl.transitionEnd(function() {
                if (!swiper2 || swiper2.destroyed) {
                  return;
                }
                swiper2.transitionEnd();
              });
            });
          } else if (swiper2.velocity) {
            swiper2.updateProgress(newPosition);
            swiper2.setTransition(momentumDuration);
            swiper2.setTranslate(newPosition);
            swiper2.transitionStart(true, swiper2.swipeDirection);
            if (!swiper2.animating) {
              swiper2.animating = true;
              $wrapperEl.transitionEnd(function() {
                if (!swiper2 || swiper2.destroyed) {
                  return;
                }
                swiper2.transitionEnd();
              });
            }
          } else {
            swiper2.updateProgress(newPosition);
          }
          swiper2.updateActiveIndex();
          swiper2.updateSlidesClasses();
        } else if (params.freeModeSticky) {
          swiper2.slideToClosest();
          return;
        }
        if (!params.freeModeMomentum || timeDiff >= params.longSwipesMs) {
          swiper2.updateProgress();
          swiper2.updateActiveIndex();
          swiper2.updateSlidesClasses();
        }
        return;
      }
      var stopIndex = 0;
      var groupSize = swiper2.slidesSizesGrid[0];
      for (var i = 0; i < slidesGrid.length; i += params.slidesPerGroup) {
        if (typeof slidesGrid[i + params.slidesPerGroup] !== "undefined") {
          if (currentPos >= slidesGrid[i] && currentPos < slidesGrid[i + params.slidesPerGroup]) {
            stopIndex = i;
            groupSize = slidesGrid[i + params.slidesPerGroup] - slidesGrid[i];
          }
        } else if (currentPos >= slidesGrid[i]) {
          stopIndex = i;
          groupSize = slidesGrid[slidesGrid.length - 1] - slidesGrid[slidesGrid.length - 2];
        }
      }
      var ratio = (currentPos - slidesGrid[stopIndex]) / groupSize;
      if (timeDiff > params.longSwipesMs) {
        if (!params.longSwipes) {
          swiper2.slideTo(swiper2.activeIndex);
          return;
        }
        if (swiper2.swipeDirection === "next") {
          if (ratio >= params.longSwipesRatio) {
            swiper2.slideTo(stopIndex + params.slidesPerGroup);
          } else {
            swiper2.slideTo(stopIndex);
          }
        }
        if (swiper2.swipeDirection === "prev") {
          if (ratio > 1 - params.longSwipesRatio) {
            swiper2.slideTo(stopIndex + params.slidesPerGroup);
          } else {
            swiper2.slideTo(stopIndex);
          }
        }
      } else {
        if (!params.shortSwipes) {
          swiper2.slideTo(swiper2.activeIndex);
          return;
        }
        if (swiper2.swipeDirection === "next") {
          swiper2.slideTo(stopIndex + params.slidesPerGroup);
        }
        if (swiper2.swipeDirection === "prev") {
          swiper2.slideTo(stopIndex);
        }
      }
    }
    function onResize() {
      var swiper2 = this;
      var params = swiper2.params;
      var el = swiper2.el;
      if (el && el.offsetWidth === 0) {
        return;
      }
      if (params.breakpoints) {
        swiper2.setBreakpoint();
      }
      var allowSlideNext = swiper2.allowSlideNext;
      var allowSlidePrev = swiper2.allowSlidePrev;
      var snapGrid = swiper2.snapGrid;
      swiper2.allowSlideNext = true;
      swiper2.allowSlidePrev = true;
      swiper2.updateSize();
      swiper2.updateSlides();
      if (params.freeMode) {
        var newTranslate = Math.min(Math.max(swiper2.translate, swiper2.maxTranslate()), swiper2.minTranslate());
        swiper2.setTranslate(newTranslate);
        swiper2.updateActiveIndex();
        swiper2.updateSlidesClasses();
        if (params.autoHeight) {
          swiper2.updateAutoHeight();
        }
      } else {
        swiper2.updateSlidesClasses();
        if ((params.slidesPerView === "auto" || params.slidesPerView > 1) && swiper2.isEnd && !swiper2.params.centeredSlides) {
          swiper2.slideTo(swiper2.slides.length - 1, 0, false, true);
        } else {
          swiper2.slideTo(swiper2.activeIndex, 0, false, true);
        }
      }
      if (swiper2.autoplay && swiper2.autoplay.running && swiper2.autoplay.paused) {
        swiper2.autoplay.run();
      }
      swiper2.allowSlidePrev = allowSlidePrev;
      swiper2.allowSlideNext = allowSlideNext;
      if (swiper2.params.watchOverflow && snapGrid !== swiper2.snapGrid) {
        swiper2.checkOverflow();
      }
    }
    function onClick(e) {
      var swiper2 = this;
      if (!swiper2.allowClick) {
        if (swiper2.params.preventClicks) {
          e.preventDefault();
        }
        if (swiper2.params.preventClicksPropagation && swiper2.animating) {
          e.stopPropagation();
          e.stopImmediatePropagation();
        }
      }
    }
    function attachEvents() {
      var swiper2 = this;
      var params = swiper2.params;
      var touchEvents = swiper2.touchEvents;
      var el = swiper2.el;
      var wrapperEl = swiper2.wrapperEl;
      {
        swiper2.onTouchStart = onTouchStart.bind(swiper2);
        swiper2.onTouchMove = onTouchMove.bind(swiper2);
        swiper2.onTouchEnd = onTouchEnd.bind(swiper2);
      }
      swiper2.onClick = onClick.bind(swiper2);
      var target = params.touchEventsTarget === "container" ? el : wrapperEl;
      var capture = !!params.nested;
      {
        if (!Support.touch && (Support.pointerEvents || Support.prefixedPointerEvents)) {
          target.addEventListener(touchEvents.start, swiper2.onTouchStart, false);
          doc.addEventListener(touchEvents.move, swiper2.onTouchMove, capture);
          doc.addEventListener(touchEvents.end, swiper2.onTouchEnd, false);
        } else {
          if (Support.touch) {
            var passiveListener = touchEvents.start === "touchstart" && Support.passiveListener && params.passiveListeners ? { passive: true, capture: false } : false;
            target.addEventListener(touchEvents.start, swiper2.onTouchStart, passiveListener);
            target.addEventListener(touchEvents.move, swiper2.onTouchMove, Support.passiveListener ? { passive: false, capture } : capture);
            target.addEventListener(touchEvents.end, swiper2.onTouchEnd, passiveListener);
          }
          if (params.simulateTouch && !Device.ios && !Device.android || params.simulateTouch && !Support.touch && Device.ios) {
            target.addEventListener("mousedown", swiper2.onTouchStart, false);
            doc.addEventListener("mousemove", swiper2.onTouchMove, capture);
            doc.addEventListener("mouseup", swiper2.onTouchEnd, false);
          }
        }
        if (params.preventClicks || params.preventClicksPropagation) {
          target.addEventListener("click", swiper2.onClick, true);
        }
      }
      swiper2.on(Device.ios || Device.android ? "resize orientationchange observerUpdate" : "resize observerUpdate", onResize, true);
    }
    function detachEvents() {
      var swiper2 = this;
      var params = swiper2.params;
      var touchEvents = swiper2.touchEvents;
      var el = swiper2.el;
      var wrapperEl = swiper2.wrapperEl;
      var target = params.touchEventsTarget === "container" ? el : wrapperEl;
      var capture = !!params.nested;
      {
        if (!Support.touch && (Support.pointerEvents || Support.prefixedPointerEvents)) {
          target.removeEventListener(touchEvents.start, swiper2.onTouchStart, false);
          doc.removeEventListener(touchEvents.move, swiper2.onTouchMove, capture);
          doc.removeEventListener(touchEvents.end, swiper2.onTouchEnd, false);
        } else {
          if (Support.touch) {
            var passiveListener = touchEvents.start === "onTouchStart" && Support.passiveListener && params.passiveListeners ? { passive: true, capture: false } : false;
            target.removeEventListener(touchEvents.start, swiper2.onTouchStart, passiveListener);
            target.removeEventListener(touchEvents.move, swiper2.onTouchMove, capture);
            target.removeEventListener(touchEvents.end, swiper2.onTouchEnd, passiveListener);
          }
          if (params.simulateTouch && !Device.ios && !Device.android || params.simulateTouch && !Support.touch && Device.ios) {
            target.removeEventListener("mousedown", swiper2.onTouchStart, false);
            doc.removeEventListener("mousemove", swiper2.onTouchMove, capture);
            doc.removeEventListener("mouseup", swiper2.onTouchEnd, false);
          }
        }
        if (params.preventClicks || params.preventClicksPropagation) {
          target.removeEventListener("click", swiper2.onClick, true);
        }
      }
      swiper2.off(Device.ios || Device.android ? "resize orientationchange observerUpdate" : "resize observerUpdate", onResize);
    }
    var events = {
      attachEvents,
      detachEvents
    };
    function setBreakpoint() {
      var swiper2 = this;
      var activeIndex = swiper2.activeIndex;
      var initialized = swiper2.initialized;
      var loopedSlides = swiper2.loopedSlides;
      if (loopedSlides === void 0)
        loopedSlides = 0;
      var params = swiper2.params;
      var breakpoints2 = params.breakpoints;
      if (!breakpoints2 || breakpoints2 && Object.keys(breakpoints2).length === 0) {
        return;
      }
      var breakpoint = swiper2.getBreakpoint(breakpoints2);
      if (breakpoint && swiper2.currentBreakpoint !== breakpoint) {
        var breakpointOnlyParams = breakpoint in breakpoints2 ? breakpoints2[breakpoint] : void 0;
        if (breakpointOnlyParams) {
          ["slidesPerView", "spaceBetween", "slidesPerGroup"].forEach(function(param) {
            var paramValue = breakpointOnlyParams[param];
            if (typeof paramValue === "undefined") {
              return;
            }
            if (param === "slidesPerView" && (paramValue === "AUTO" || paramValue === "auto")) {
              breakpointOnlyParams[param] = "auto";
            } else if (param === "slidesPerView") {
              breakpointOnlyParams[param] = parseFloat(paramValue);
            } else {
              breakpointOnlyParams[param] = parseInt(paramValue, 10);
            }
          });
        }
        var breakpointParams = breakpointOnlyParams || swiper2.originalParams;
        var directionChanged = breakpointParams.direction && breakpointParams.direction !== params.direction;
        var needsReLoop = params.loop && (breakpointParams.slidesPerView !== params.slidesPerView || directionChanged);
        if (directionChanged && initialized) {
          swiper2.changeDirection();
        }
        Utils.extend(swiper2.params, breakpointParams);
        Utils.extend(swiper2, {
          allowTouchMove: swiper2.params.allowTouchMove,
          allowSlideNext: swiper2.params.allowSlideNext,
          allowSlidePrev: swiper2.params.allowSlidePrev
        });
        swiper2.currentBreakpoint = breakpoint;
        if (needsReLoop && initialized) {
          swiper2.loopDestroy();
          swiper2.loopCreate();
          swiper2.updateSlides();
          swiper2.slideTo(activeIndex - loopedSlides + swiper2.loopedSlides, 0, false);
        }
        swiper2.emit("breakpoint", breakpointParams);
      }
    }
    function getBreakpoint(breakpoints2) {
      var swiper2 = this;
      if (!breakpoints2) {
        return void 0;
      }
      var breakpoint = false;
      var points = [];
      Object.keys(breakpoints2).forEach(function(point2) {
        points.push(point2);
      });
      points.sort(function(a, b) {
        return parseInt(a, 10) - parseInt(b, 10);
      });
      for (var i = 0; i < points.length; i += 1) {
        var point = points[i];
        if (swiper2.params.breakpointsInverse) {
          if (point <= win.innerWidth) {
            breakpoint = point;
          }
        } else if (point >= win.innerWidth && !breakpoint) {
          breakpoint = point;
        }
      }
      return breakpoint || "max";
    }
    var breakpoints = { setBreakpoint, getBreakpoint };
    function addClasses() {
      var swiper2 = this;
      var classNames = swiper2.classNames;
      var params = swiper2.params;
      var rtl = swiper2.rtl;
      var $el = swiper2.$el;
      var suffixes = [];
      suffixes.push("initialized");
      suffixes.push(params.direction);
      if (params.freeMode) {
        suffixes.push("free-mode");
      }
      if (!Support.flexbox) {
        suffixes.push("no-flexbox");
      }
      if (params.autoHeight) {
        suffixes.push("autoheight");
      }
      if (rtl) {
        suffixes.push("rtl");
      }
      if (params.slidesPerColumn > 1) {
        suffixes.push("multirow");
      }
      if (Device.android) {
        suffixes.push("android");
      }
      if (Device.ios) {
        suffixes.push("ios");
      }
      if ((Browser.isIE || Browser.isEdge) && (Support.pointerEvents || Support.prefixedPointerEvents)) {
        suffixes.push("wp8-" + params.direction);
      }
      suffixes.forEach(function(suffix) {
        classNames.push(params.containerModifierClass + suffix);
      });
      $el.addClass(classNames.join(" "));
    }
    function removeClasses() {
      var swiper2 = this;
      var $el = swiper2.$el;
      var classNames = swiper2.classNames;
      $el.removeClass(classNames.join(" "));
    }
    var classes = { addClasses, removeClasses };
    function loadImage(imageEl, src, srcset, sizes, checkForComplete, callback) {
      var image;
      function onReady() {
        if (callback) {
          callback();
        }
      }
      if (!imageEl.complete || !checkForComplete) {
        if (src) {
          image = new win.Image();
          image.onload = onReady;
          image.onerror = onReady;
          if (sizes) {
            image.sizes = sizes;
          }
          if (srcset) {
            image.srcset = srcset;
          }
          if (src) {
            image.src = src;
          }
        } else {
          onReady();
        }
      } else {
        onReady();
      }
    }
    function preloadImages() {
      var swiper2 = this;
      swiper2.imagesToLoad = swiper2.$el.find("img");
      function onReady() {
        if (typeof swiper2 === "undefined" || swiper2 === null || !swiper2 || swiper2.destroyed) {
          return;
        }
        if (swiper2.imagesLoaded !== void 0) {
          swiper2.imagesLoaded += 1;
        }
        if (swiper2.imagesLoaded === swiper2.imagesToLoad.length) {
          if (swiper2.params.updateOnImagesReady) {
            swiper2.update();
          }
          swiper2.emit("imagesReady");
        }
      }
      for (var i = 0; i < swiper2.imagesToLoad.length; i += 1) {
        var imageEl = swiper2.imagesToLoad[i];
        swiper2.loadImage(
          imageEl,
          imageEl.currentSrc || imageEl.getAttribute("src"),
          imageEl.srcset || imageEl.getAttribute("srcset"),
          imageEl.sizes || imageEl.getAttribute("sizes"),
          true,
          onReady
        );
      }
    }
    var images = {
      loadImage,
      preloadImages
    };
    function checkOverflow() {
      var swiper2 = this;
      var wasLocked = swiper2.isLocked;
      swiper2.isLocked = swiper2.snapGrid.length === 1;
      swiper2.allowSlideNext = !swiper2.isLocked;
      swiper2.allowSlidePrev = !swiper2.isLocked;
      if (wasLocked !== swiper2.isLocked) {
        swiper2.emit(swiper2.isLocked ? "lock" : "unlock");
      }
      if (wasLocked && wasLocked !== swiper2.isLocked) {
        swiper2.isEnd = false;
        swiper2.navigation.update();
      }
    }
    var checkOverflow$1 = { checkOverflow };
    var defaults = {
      init: true,
      direction: "horizontal",
      touchEventsTarget: "container",
      initialSlide: 0,
      speed: 300,
      //
      preventInteractionOnTransition: false,
      // To support iOS's swipe-to-go-back gesture (when being used in-app, with UIWebView).
      edgeSwipeDetection: false,
      edgeSwipeThreshold: 20,
      // Free mode
      freeMode: false,
      freeModeMomentum: true,
      freeModeMomentumRatio: 1,
      freeModeMomentumBounce: true,
      freeModeMomentumBounceRatio: 1,
      freeModeMomentumVelocityRatio: 1,
      freeModeSticky: false,
      freeModeMinimumVelocity: 0.02,
      // Autoheight
      autoHeight: false,
      // Set wrapper width
      setWrapperSize: false,
      // Virtual Translate
      virtualTranslate: false,
      // Effects
      effect: "slide",
      // 'slide' or 'fade' or 'cube' or 'coverflow' or 'flip'
      // Breakpoints
      breakpoints: void 0,
      breakpointsInverse: false,
      // Slides grid
      spaceBetween: 0,
      slidesPerView: 1,
      slidesPerColumn: 1,
      slidesPerColumnFill: "column",
      slidesPerGroup: 1,
      centeredSlides: false,
      slidesOffsetBefore: 0,
      // in px
      slidesOffsetAfter: 0,
      // in px
      normalizeSlideIndex: true,
      centerInsufficientSlides: false,
      // Disable swiper and hide navigation when container not overflow
      watchOverflow: false,
      // Round length
      roundLengths: false,
      // Touches
      touchRatio: 1,
      touchAngle: 45,
      simulateTouch: true,
      shortSwipes: true,
      longSwipes: true,
      longSwipesRatio: 0.5,
      longSwipesMs: 300,
      followFinger: true,
      allowTouchMove: true,
      threshold: 0,
      touchMoveStopPropagation: true,
      touchStartPreventDefault: true,
      touchStartForcePreventDefault: false,
      touchReleaseOnEdges: false,
      // Unique Navigation Elements
      uniqueNavElements: true,
      // Resistance
      resistance: true,
      resistanceRatio: 0.85,
      // Progress
      watchSlidesProgress: false,
      watchSlidesVisibility: false,
      // Cursor
      grabCursor: false,
      // Clicks
      preventClicks: true,
      preventClicksPropagation: true,
      slideToClickedSlide: false,
      // Images
      preloadImages: true,
      updateOnImagesReady: true,
      // loop
      loop: false,
      loopAdditionalSlides: 0,
      loopedSlides: null,
      loopFillGroupWithBlank: false,
      // Swiping/no swiping
      allowSlidePrev: true,
      allowSlideNext: true,
      swipeHandler: null,
      // '.swipe-handler',
      noSwiping: true,
      noSwipingClass: "swiper-no-swiping",
      noSwipingSelector: null,
      // Passive Listeners
      passiveListeners: true,
      // NS
      containerModifierClass: "swiper-container-",
      // NEW
      slideClass: "swiper-slide",
      slideBlankClass: "swiper-slide-invisible-blank",
      slideActiveClass: "swiper-slide-active",
      slideDuplicateActiveClass: "swiper-slide-duplicate-active",
      slideVisibleClass: "swiper-slide-visible",
      slideDuplicateClass: "swiper-slide-duplicate",
      slideNextClass: "swiper-slide-next",
      slideDuplicateNextClass: "swiper-slide-duplicate-next",
      slidePrevClass: "swiper-slide-prev",
      slideDuplicatePrevClass: "swiper-slide-duplicate-prev",
      wrapperClass: "swiper-wrapper",
      // Callbacks
      runCallbacksOnInit: true
    };
    var prototypes = {
      update,
      translate,
      transition: transition$1,
      slide,
      loop,
      grabCursor,
      manipulation,
      events,
      breakpoints,
      checkOverflow: checkOverflow$1,
      classes,
      images
    };
    var extendedDefaults = {};
    var Swiper = /* @__PURE__ */ function(SwiperClass2) {
      function Swiper2() {
        var assign;
        var args = [], len = arguments.length;
        while (len--)
          args[len] = arguments[len];
        var el;
        var params;
        if (args.length === 1 && args[0].constructor && args[0].constructor === Object) {
          params = args[0];
        } else {
          assign = args, el = assign[0], params = assign[1];
        }
        if (!params) {
          params = {};
        }
        params = Utils.extend({}, params);
        if (el && !params.el) {
          params.el = el;
        }
        SwiperClass2.call(this, params);
        Object.keys(prototypes).forEach(function(prototypeGroup) {
          Object.keys(prototypes[prototypeGroup]).forEach(function(protoMethod) {
            if (!Swiper2.prototype[protoMethod]) {
              Swiper2.prototype[protoMethod] = prototypes[prototypeGroup][protoMethod];
            }
          });
        });
        var swiper2 = this;
        if (typeof swiper2.modules === "undefined") {
          swiper2.modules = {};
        }
        Object.keys(swiper2.modules).forEach(function(moduleName) {
          var module3 = swiper2.modules[moduleName];
          if (module3.params) {
            var moduleParamName = Object.keys(module3.params)[0];
            var moduleParams = module3.params[moduleParamName];
            if (typeof moduleParams !== "object" || moduleParams === null) {
              return;
            }
            if (!(moduleParamName in params && "enabled" in moduleParams)) {
              return;
            }
            if (params[moduleParamName] === true) {
              params[moduleParamName] = { enabled: true };
            }
            if (typeof params[moduleParamName] === "object" && !("enabled" in params[moduleParamName])) {
              params[moduleParamName].enabled = true;
            }
            if (!params[moduleParamName]) {
              params[moduleParamName] = { enabled: false };
            }
          }
        });
        var swiperParams = Utils.extend({}, defaults);
        swiper2.useModulesParams(swiperParams);
        swiper2.params = Utils.extend({}, swiperParams, extendedDefaults, params);
        swiper2.originalParams = Utils.extend({}, swiper2.params);
        swiper2.passedParams = Utils.extend({}, params);
        swiper2.$ = $;
        var $el = $(swiper2.params.el);
        el = $el[0];
        if (!el) {
          return void 0;
        }
        if ($el.length > 1) {
          var swipers = [];
          $el.each(function(index2, containerEl) {
            var newParams = Utils.extend({}, params, { el: containerEl });
            swipers.push(new Swiper2(newParams));
          });
          return swipers;
        }
        el.swiper = swiper2;
        $el.data("swiper", swiper2);
        var $wrapperEl = $el.children("." + swiper2.params.wrapperClass);
        Utils.extend(swiper2, {
          $el,
          el,
          $wrapperEl,
          wrapperEl: $wrapperEl[0],
          // Classes
          classNames: [],
          // Slides
          slides: $(),
          slidesGrid: [],
          snapGrid: [],
          slidesSizesGrid: [],
          // isDirection
          isHorizontal: function isHorizontal() {
            return swiper2.params.direction === "horizontal";
          },
          isVertical: function isVertical() {
            return swiper2.params.direction === "vertical";
          },
          // RTL
          rtl: el.dir.toLowerCase() === "rtl" || $el.css("direction") === "rtl",
          rtlTranslate: swiper2.params.direction === "horizontal" && (el.dir.toLowerCase() === "rtl" || $el.css("direction") === "rtl"),
          wrongRTL: $wrapperEl.css("display") === "-webkit-box",
          // Indexes
          activeIndex: 0,
          realIndex: 0,
          //
          isBeginning: true,
          isEnd: false,
          // Props
          translate: 0,
          previousTranslate: 0,
          progress: 0,
          velocity: 0,
          animating: false,
          // Locks
          allowSlideNext: swiper2.params.allowSlideNext,
          allowSlidePrev: swiper2.params.allowSlidePrev,
          // Touch Events
          touchEvents: function touchEvents() {
            var touch = ["touchstart", "touchmove", "touchend"];
            var desktop = ["mousedown", "mousemove", "mouseup"];
            if (Support.pointerEvents) {
              desktop = ["pointerdown", "pointermove", "pointerup"];
            } else if (Support.prefixedPointerEvents) {
              desktop = ["MSPointerDown", "MSPointerMove", "MSPointerUp"];
            }
            swiper2.touchEventsTouch = {
              start: touch[0],
              move: touch[1],
              end: touch[2]
            };
            swiper2.touchEventsDesktop = {
              start: desktop[0],
              move: desktop[1],
              end: desktop[2]
            };
            return Support.touch || !swiper2.params.simulateTouch ? swiper2.touchEventsTouch : swiper2.touchEventsDesktop;
          }(),
          touchEventsData: {
            isTouched: void 0,
            isMoved: void 0,
            allowTouchCallbacks: void 0,
            touchStartTime: void 0,
            isScrolling: void 0,
            currentTranslate: void 0,
            startTranslate: void 0,
            allowThresholdMove: void 0,
            // Form elements to match
            formElements: "input, select, option, textarea, button, video",
            // Last click time
            lastClickTime: Utils.now(),
            clickTimeout: void 0,
            // Velocities
            velocities: [],
            allowMomentumBounce: void 0,
            isTouchEvent: void 0,
            startMoving: void 0
          },
          // Clicks
          allowClick: true,
          // Touches
          allowTouchMove: swiper2.params.allowTouchMove,
          touches: {
            startX: 0,
            startY: 0,
            currentX: 0,
            currentY: 0,
            diff: 0
          },
          // Images
          imagesToLoad: [],
          imagesLoaded: 0
        });
        swiper2.useModules();
        if (swiper2.params.init) {
          swiper2.init();
        }
        return swiper2;
      }
      if (SwiperClass2)
        Swiper2.__proto__ = SwiperClass2;
      Swiper2.prototype = Object.create(SwiperClass2 && SwiperClass2.prototype);
      Swiper2.prototype.constructor = Swiper2;
      var staticAccessors2 = { extendedDefaults: { configurable: true }, defaults: { configurable: true }, Class: { configurable: true }, $: { configurable: true } };
      Swiper2.prototype.slidesPerViewDynamic = function slidesPerViewDynamic() {
        var swiper2 = this;
        var params = swiper2.params;
        var slides = swiper2.slides;
        var slidesGrid = swiper2.slidesGrid;
        var swiperSize = swiper2.size;
        var activeIndex = swiper2.activeIndex;
        var spv = 1;
        if (params.centeredSlides) {
          var slideSize = slides[activeIndex].swiperSlideSize;
          var breakLoop;
          for (var i = activeIndex + 1; i < slides.length; i += 1) {
            if (slides[i] && !breakLoop) {
              slideSize += slides[i].swiperSlideSize;
              spv += 1;
              if (slideSize > swiperSize) {
                breakLoop = true;
              }
            }
          }
          for (var i$1 = activeIndex - 1; i$1 >= 0; i$1 -= 1) {
            if (slides[i$1] && !breakLoop) {
              slideSize += slides[i$1].swiperSlideSize;
              spv += 1;
              if (slideSize > swiperSize) {
                breakLoop = true;
              }
            }
          }
        } else {
          for (var i$2 = activeIndex + 1; i$2 < slides.length; i$2 += 1) {
            if (slidesGrid[i$2] - slidesGrid[activeIndex] < swiperSize) {
              spv += 1;
            }
          }
        }
        return spv;
      };
      Swiper2.prototype.update = function update2() {
        var swiper2 = this;
        if (!swiper2 || swiper2.destroyed) {
          return;
        }
        var snapGrid = swiper2.snapGrid;
        var params = swiper2.params;
        if (params.breakpoints) {
          swiper2.setBreakpoint();
        }
        swiper2.updateSize();
        swiper2.updateSlides();
        swiper2.updateProgress();
        swiper2.updateSlidesClasses();
        function setTranslate2() {
          var translateValue = swiper2.rtlTranslate ? swiper2.translate * -1 : swiper2.translate;
          var newTranslate = Math.min(Math.max(translateValue, swiper2.maxTranslate()), swiper2.minTranslate());
          swiper2.setTranslate(newTranslate);
          swiper2.updateActiveIndex();
          swiper2.updateSlidesClasses();
        }
        var translated;
        if (swiper2.params.freeMode) {
          setTranslate2();
          if (swiper2.params.autoHeight) {
            swiper2.updateAutoHeight();
          }
        } else {
          if ((swiper2.params.slidesPerView === "auto" || swiper2.params.slidesPerView > 1) && swiper2.isEnd && !swiper2.params.centeredSlides) {
            translated = swiper2.slideTo(swiper2.slides.length - 1, 0, false, true);
          } else {
            translated = swiper2.slideTo(swiper2.activeIndex, 0, false, true);
          }
          if (!translated) {
            setTranslate2();
          }
        }
        if (params.watchOverflow && snapGrid !== swiper2.snapGrid) {
          swiper2.checkOverflow();
        }
        swiper2.emit("update");
      };
      Swiper2.prototype.changeDirection = function changeDirection(newDirection, needUpdate) {
        if (needUpdate === void 0)
          needUpdate = true;
        var swiper2 = this;
        var currentDirection = swiper2.params.direction;
        if (!newDirection) {
          newDirection = currentDirection === "horizontal" ? "vertical" : "horizontal";
        }
        if (newDirection === currentDirection || newDirection !== "horizontal" && newDirection !== "vertical") {
          return swiper2;
        }
        swiper2.$el.removeClass("" + swiper2.params.containerModifierClass + currentDirection + " wp8-" + currentDirection).addClass("" + swiper2.params.containerModifierClass + newDirection);
        if ((Browser.isIE || Browser.isEdge) && (Support.pointerEvents || Support.prefixedPointerEvents)) {
          swiper2.$el.addClass(swiper2.params.containerModifierClass + "wp8-" + newDirection);
        }
        swiper2.params.direction = newDirection;
        swiper2.slides.each(function(slideIndex, slideEl) {
          if (newDirection === "vertical") {
            slideEl.style.width = "";
          } else {
            slideEl.style.height = "";
          }
        });
        swiper2.emit("changeDirection");
        if (needUpdate) {
          swiper2.update();
        }
        return swiper2;
      };
      Swiper2.prototype.init = function init() {
        var swiper2 = this;
        if (swiper2.initialized) {
          return;
        }
        swiper2.emit("beforeInit");
        if (swiper2.params.breakpoints) {
          swiper2.setBreakpoint();
        }
        swiper2.addClasses();
        if (swiper2.params.loop) {
          swiper2.loopCreate();
        }
        swiper2.updateSize();
        swiper2.updateSlides();
        if (swiper2.params.watchOverflow) {
          swiper2.checkOverflow();
        }
        if (swiper2.params.grabCursor) {
          swiper2.setGrabCursor();
        }
        if (swiper2.params.preloadImages) {
          swiper2.preloadImages();
        }
        if (swiper2.params.loop) {
          swiper2.slideTo(swiper2.params.initialSlide + swiper2.loopedSlides, 0, swiper2.params.runCallbacksOnInit);
        } else {
          swiper2.slideTo(swiper2.params.initialSlide, 0, swiper2.params.runCallbacksOnInit);
        }
        swiper2.attachEvents();
        swiper2.initialized = true;
        swiper2.emit("init");
      };
      Swiper2.prototype.destroy = function destroy(deleteInstance, cleanStyles) {
        if (deleteInstance === void 0)
          deleteInstance = true;
        if (cleanStyles === void 0)
          cleanStyles = true;
        var swiper2 = this;
        var params = swiper2.params;
        var $el = swiper2.$el;
        var $wrapperEl = swiper2.$wrapperEl;
        var slides = swiper2.slides;
        if (typeof swiper2.params === "undefined" || swiper2.destroyed) {
          return null;
        }
        swiper2.emit("beforeDestroy");
        swiper2.initialized = false;
        swiper2.detachEvents();
        if (params.loop) {
          swiper2.loopDestroy();
        }
        if (cleanStyles) {
          swiper2.removeClasses();
          $el.removeAttr("style");
          $wrapperEl.removeAttr("style");
          if (slides && slides.length) {
            slides.removeClass([
              params.slideVisibleClass,
              params.slideActiveClass,
              params.slideNextClass,
              params.slidePrevClass
            ].join(" ")).removeAttr("style").removeAttr("data-swiper-slide-index").removeAttr("data-swiper-column").removeAttr("data-swiper-row");
          }
        }
        swiper2.emit("destroy");
        Object.keys(swiper2.eventsListeners).forEach(function(eventName) {
          swiper2.off(eventName);
        });
        if (deleteInstance !== false) {
          swiper2.$el[0].swiper = null;
          swiper2.$el.data("swiper", null);
          Utils.deleteProps(swiper2);
        }
        swiper2.destroyed = true;
        return null;
      };
      Swiper2.extendDefaults = function extendDefaults(newDefaults) {
        Utils.extend(extendedDefaults, newDefaults);
      };
      staticAccessors2.extendedDefaults.get = function() {
        return extendedDefaults;
      };
      staticAccessors2.defaults.get = function() {
        return defaults;
      };
      staticAccessors2.Class.get = function() {
        return SwiperClass2;
      };
      staticAccessors2.$.get = function() {
        return $;
      };
      Object.defineProperties(Swiper2, staticAccessors2);
      return Swiper2;
    }(SwiperClass);
    var Device$1 = {
      name: "device",
      proto: {
        device: Device
      },
      static: {
        device: Device
      }
    };
    var Support$1 = {
      name: "support",
      proto: {
        support: Support
      },
      static: {
        support: Support
      }
    };
    var Browser$1 = {
      name: "browser",
      proto: {
        browser: Browser
      },
      static: {
        browser: Browser
      }
    };
    var Resize = {
      name: "resize",
      create: function create() {
        var swiper2 = this;
        Utils.extend(swiper2, {
          resize: {
            resizeHandler: function resizeHandler() {
              if (!swiper2 || swiper2.destroyed || !swiper2.initialized) {
                return;
              }
              swiper2.emit("beforeResize");
              swiper2.emit("resize");
            },
            orientationChangeHandler: function orientationChangeHandler() {
              if (!swiper2 || swiper2.destroyed || !swiper2.initialized) {
                return;
              }
              swiper2.emit("orientationchange");
            }
          }
        });
      },
      on: {
        init: function init() {
          var swiper2 = this;
          win.addEventListener("resize", swiper2.resize.resizeHandler);
          win.addEventListener("orientationchange", swiper2.resize.orientationChangeHandler);
        },
        destroy: function destroy() {
          var swiper2 = this;
          win.removeEventListener("resize", swiper2.resize.resizeHandler);
          win.removeEventListener("orientationchange", swiper2.resize.orientationChangeHandler);
        }
      }
    };
    var Observer = {
      func: win.MutationObserver || win.WebkitMutationObserver,
      attach: function attach(target, options) {
        if (options === void 0)
          options = {};
        var swiper2 = this;
        var ObserverFunc = Observer.func;
        var observer = new ObserverFunc(function(mutations) {
          if (mutations.length === 1) {
            swiper2.emit("observerUpdate", mutations[0]);
            return;
          }
          var observerUpdate = function observerUpdate2() {
            swiper2.emit("observerUpdate", mutations[0]);
          };
          if (win.requestAnimationFrame) {
            win.requestAnimationFrame(observerUpdate);
          } else {
            win.setTimeout(observerUpdate, 0);
          }
        });
        observer.observe(target, {
          attributes: typeof options.attributes === "undefined" ? true : options.attributes,
          childList: typeof options.childList === "undefined" ? true : options.childList,
          characterData: typeof options.characterData === "undefined" ? true : options.characterData
        });
        swiper2.observer.observers.push(observer);
      },
      init: function init() {
        var swiper2 = this;
        if (!Support.observer || !swiper2.params.observer) {
          return;
        }
        if (swiper2.params.observeParents) {
          var containerParents = swiper2.$el.parents();
          for (var i = 0; i < containerParents.length; i += 1) {
            swiper2.observer.attach(containerParents[i]);
          }
        }
        swiper2.observer.attach(swiper2.$el[0], { childList: swiper2.params.observeSlideChildren });
        swiper2.observer.attach(swiper2.$wrapperEl[0], { attributes: false });
      },
      destroy: function destroy() {
        var swiper2 = this;
        swiper2.observer.observers.forEach(function(observer) {
          observer.disconnect();
        });
        swiper2.observer.observers = [];
      }
    };
    var Observer$1 = {
      name: "observer",
      params: {
        observer: false,
        observeParents: false,
        observeSlideChildren: false
      },
      create: function create() {
        var swiper2 = this;
        Utils.extend(swiper2, {
          observer: {
            init: Observer.init.bind(swiper2),
            attach: Observer.attach.bind(swiper2),
            destroy: Observer.destroy.bind(swiper2),
            observers: []
          }
        });
      },
      on: {
        init: function init() {
          var swiper2 = this;
          swiper2.observer.init();
        },
        destroy: function destroy() {
          var swiper2 = this;
          swiper2.observer.destroy();
        }
      }
    };
    var Virtual = {
      update: function update2(force) {
        var swiper2 = this;
        var ref = swiper2.params;
        var slidesPerView = ref.slidesPerView;
        var slidesPerGroup = ref.slidesPerGroup;
        var centeredSlides = ref.centeredSlides;
        var ref$1 = swiper2.params.virtual;
        var addSlidesBefore = ref$1.addSlidesBefore;
        var addSlidesAfter = ref$1.addSlidesAfter;
        var ref$2 = swiper2.virtual;
        var previousFrom = ref$2.from;
        var previousTo = ref$2.to;
        var slides = ref$2.slides;
        var previousSlidesGrid = ref$2.slidesGrid;
        var renderSlide = ref$2.renderSlide;
        var previousOffset = ref$2.offset;
        swiper2.updateActiveIndex();
        var activeIndex = swiper2.activeIndex || 0;
        var offsetProp;
        if (swiper2.rtlTranslate) {
          offsetProp = "right";
        } else {
          offsetProp = swiper2.isHorizontal() ? "left" : "top";
        }
        var slidesAfter;
        var slidesBefore;
        if (centeredSlides) {
          slidesAfter = Math.floor(slidesPerView / 2) + slidesPerGroup + addSlidesBefore;
          slidesBefore = Math.floor(slidesPerView / 2) + slidesPerGroup + addSlidesAfter;
        } else {
          slidesAfter = slidesPerView + (slidesPerGroup - 1) + addSlidesBefore;
          slidesBefore = slidesPerGroup + addSlidesAfter;
        }
        var from = Math.max((activeIndex || 0) - slidesBefore, 0);
        var to = Math.min((activeIndex || 0) + slidesAfter, slides.length - 1);
        var offset2 = (swiper2.slidesGrid[from] || 0) - (swiper2.slidesGrid[0] || 0);
        Utils.extend(swiper2.virtual, {
          from,
          to,
          offset: offset2,
          slidesGrid: swiper2.slidesGrid
        });
        function onRendered() {
          swiper2.updateSlides();
          swiper2.updateProgress();
          swiper2.updateSlidesClasses();
          if (swiper2.lazy && swiper2.params.lazy.enabled) {
            swiper2.lazy.load();
          }
        }
        if (previousFrom === from && previousTo === to && !force) {
          if (swiper2.slidesGrid !== previousSlidesGrid && offset2 !== previousOffset) {
            swiper2.slides.css(offsetProp, offset2 + "px");
          }
          swiper2.updateProgress();
          return;
        }
        if (swiper2.params.virtual.renderExternal) {
          swiper2.params.virtual.renderExternal.call(swiper2, {
            offset: offset2,
            from,
            to,
            slides: function getSlides() {
              var slidesToRender = [];
              for (var i2 = from; i2 <= to; i2 += 1) {
                slidesToRender.push(slides[i2]);
              }
              return slidesToRender;
            }()
          });
          onRendered();
          return;
        }
        var prependIndexes = [];
        var appendIndexes = [];
        if (force) {
          swiper2.$wrapperEl.find("." + swiper2.params.slideClass).remove();
        } else {
          for (var i = previousFrom; i <= previousTo; i += 1) {
            if (i < from || i > to) {
              swiper2.$wrapperEl.find("." + swiper2.params.slideClass + '[data-swiper-slide-index="' + i + '"]').remove();
            }
          }
        }
        for (var i$1 = 0; i$1 < slides.length; i$1 += 1) {
          if (i$1 >= from && i$1 <= to) {
            if (typeof previousTo === "undefined" || force) {
              appendIndexes.push(i$1);
            } else {
              if (i$1 > previousTo) {
                appendIndexes.push(i$1);
              }
              if (i$1 < previousFrom) {
                prependIndexes.push(i$1);
              }
            }
          }
        }
        appendIndexes.forEach(function(index2) {
          swiper2.$wrapperEl.append(renderSlide(slides[index2], index2));
        });
        prependIndexes.sort(function(a, b) {
          return b - a;
        }).forEach(function(index2) {
          swiper2.$wrapperEl.prepend(renderSlide(slides[index2], index2));
        });
        swiper2.$wrapperEl.children(".swiper-slide").css(offsetProp, offset2 + "px");
        onRendered();
      },
      renderSlide: function renderSlide(slide2, index2) {
        var swiper2 = this;
        var params = swiper2.params.virtual;
        if (params.cache && swiper2.virtual.cache[index2]) {
          return swiper2.virtual.cache[index2];
        }
        var $slideEl = params.renderSlide ? $(params.renderSlide.call(swiper2, slide2, index2)) : $('<div class="' + swiper2.params.slideClass + '" data-swiper-slide-index="' + index2 + '">' + slide2 + "</div>");
        if (!$slideEl.attr("data-swiper-slide-index")) {
          $slideEl.attr("data-swiper-slide-index", index2);
        }
        if (params.cache) {
          swiper2.virtual.cache[index2] = $slideEl;
        }
        return $slideEl;
      },
      appendSlide: function appendSlide2(slides) {
        var swiper2 = this;
        if (typeof slides === "object" && "length" in slides) {
          for (var i = 0; i < slides.length; i += 1) {
            if (slides[i]) {
              swiper2.virtual.slides.push(slides[i]);
            }
          }
        } else {
          swiper2.virtual.slides.push(slides);
        }
        swiper2.virtual.update(true);
      },
      prependSlide: function prependSlide2(slides) {
        var swiper2 = this;
        var activeIndex = swiper2.activeIndex;
        var newActiveIndex = activeIndex + 1;
        var numberOfNewSlides = 1;
        if (Array.isArray(slides)) {
          for (var i = 0; i < slides.length; i += 1) {
            if (slides[i]) {
              swiper2.virtual.slides.unshift(slides[i]);
            }
          }
          newActiveIndex = activeIndex + slides.length;
          numberOfNewSlides = slides.length;
        } else {
          swiper2.virtual.slides.unshift(slides);
        }
        if (swiper2.params.virtual.cache) {
          var cache = swiper2.virtual.cache;
          var newCache = {};
          Object.keys(cache).forEach(function(cachedIndex) {
            newCache[parseInt(cachedIndex, 10) + numberOfNewSlides] = cache[cachedIndex];
          });
          swiper2.virtual.cache = newCache;
        }
        swiper2.virtual.update(true);
        swiper2.slideTo(newActiveIndex, 0);
      },
      removeSlide: function removeSlide2(slidesIndexes) {
        var swiper2 = this;
        if (typeof slidesIndexes === "undefined" || slidesIndexes === null) {
          return;
        }
        var activeIndex = swiper2.activeIndex;
        if (Array.isArray(slidesIndexes)) {
          for (var i = slidesIndexes.length - 1; i >= 0; i -= 1) {
            swiper2.virtual.slides.splice(slidesIndexes[i], 1);
            if (swiper2.params.virtual.cache) {
              delete swiper2.virtual.cache[slidesIndexes[i]];
            }
            if (slidesIndexes[i] < activeIndex) {
              activeIndex -= 1;
            }
            activeIndex = Math.max(activeIndex, 0);
          }
        } else {
          swiper2.virtual.slides.splice(slidesIndexes, 1);
          if (swiper2.params.virtual.cache) {
            delete swiper2.virtual.cache[slidesIndexes];
          }
          if (slidesIndexes < activeIndex) {
            activeIndex -= 1;
          }
          activeIndex = Math.max(activeIndex, 0);
        }
        swiper2.virtual.update(true);
        swiper2.slideTo(activeIndex, 0);
      },
      removeAllSlides: function removeAllSlides2() {
        var swiper2 = this;
        swiper2.virtual.slides = [];
        if (swiper2.params.virtual.cache) {
          swiper2.virtual.cache = {};
        }
        swiper2.virtual.update(true);
        swiper2.slideTo(0, 0);
      }
    };
    var Virtual$1 = {
      name: "virtual",
      params: {
        virtual: {
          enabled: false,
          slides: [],
          cache: true,
          renderSlide: null,
          renderExternal: null,
          addSlidesBefore: 0,
          addSlidesAfter: 0
        }
      },
      create: function create() {
        var swiper2 = this;
        Utils.extend(swiper2, {
          virtual: {
            update: Virtual.update.bind(swiper2),
            appendSlide: Virtual.appendSlide.bind(swiper2),
            prependSlide: Virtual.prependSlide.bind(swiper2),
            removeSlide: Virtual.removeSlide.bind(swiper2),
            removeAllSlides: Virtual.removeAllSlides.bind(swiper2),
            renderSlide: Virtual.renderSlide.bind(swiper2),
            slides: swiper2.params.virtual.slides,
            cache: {}
          }
        });
      },
      on: {
        beforeInit: function beforeInit() {
          var swiper2 = this;
          if (!swiper2.params.virtual.enabled) {
            return;
          }
          swiper2.classNames.push(swiper2.params.containerModifierClass + "virtual");
          var overwriteParams = {
            watchSlidesProgress: true
          };
          Utils.extend(swiper2.params, overwriteParams);
          Utils.extend(swiper2.originalParams, overwriteParams);
          if (!swiper2.params.initialSlide) {
            swiper2.virtual.update();
          }
        },
        setTranslate: function setTranslate2() {
          var swiper2 = this;
          if (!swiper2.params.virtual.enabled) {
            return;
          }
          swiper2.virtual.update();
        }
      }
    };
    var Keyboard = {
      handle: function handle(event) {
        var swiper2 = this;
        var rtl = swiper2.rtlTranslate;
        var e = event;
        if (e.originalEvent) {
          e = e.originalEvent;
        }
        var kc = e.keyCode || e.charCode;
        if (!swiper2.allowSlideNext && (swiper2.isHorizontal() && kc === 39 || swiper2.isVertical() && kc === 40 || kc === 34)) {
          return false;
        }
        if (!swiper2.allowSlidePrev && (swiper2.isHorizontal() && kc === 37 || swiper2.isVertical() && kc === 38 || kc === 33)) {
          return false;
        }
        if (e.shiftKey || e.altKey || e.ctrlKey || e.metaKey) {
          return void 0;
        }
        if (doc.activeElement && doc.activeElement.nodeName && (doc.activeElement.nodeName.toLowerCase() === "input" || doc.activeElement.nodeName.toLowerCase() === "textarea")) {
          return void 0;
        }
        if (swiper2.params.keyboard.onlyInViewport && (kc === 33 || kc === 34 || kc === 37 || kc === 39 || kc === 38 || kc === 40)) {
          var inView = false;
          if (swiper2.$el.parents("." + swiper2.params.slideClass).length > 0 && swiper2.$el.parents("." + swiper2.params.slideActiveClass).length === 0) {
            return void 0;
          }
          var windowWidth = win.innerWidth;
          var windowHeight = win.innerHeight;
          var swiperOffset = swiper2.$el.offset();
          if (rtl) {
            swiperOffset.left -= swiper2.$el[0].scrollLeft;
          }
          var swiperCoord = [
            [swiperOffset.left, swiperOffset.top],
            [swiperOffset.left + swiper2.width, swiperOffset.top],
            [swiperOffset.left, swiperOffset.top + swiper2.height],
            [swiperOffset.left + swiper2.width, swiperOffset.top + swiper2.height]
          ];
          for (var i = 0; i < swiperCoord.length; i += 1) {
            var point = swiperCoord[i];
            if (point[0] >= 0 && point[0] <= windowWidth && point[1] >= 0 && point[1] <= windowHeight) {
              inView = true;
            }
          }
          if (!inView) {
            return void 0;
          }
        }
        if (swiper2.isHorizontal()) {
          if (kc === 33 || kc === 34 || kc === 37 || kc === 39) {
            if (e.preventDefault) {
              e.preventDefault();
            } else {
              e.returnValue = false;
            }
          }
          if ((kc === 34 || kc === 39) && !rtl || (kc === 33 || kc === 37) && rtl) {
            swiper2.slideNext();
          }
          if ((kc === 33 || kc === 37) && !rtl || (kc === 34 || kc === 39) && rtl) {
            swiper2.slidePrev();
          }
        } else {
          if (kc === 33 || kc === 34 || kc === 38 || kc === 40) {
            if (e.preventDefault) {
              e.preventDefault();
            } else {
              e.returnValue = false;
            }
          }
          if (kc === 34 || kc === 40) {
            swiper2.slideNext();
          }
          if (kc === 33 || kc === 38) {
            swiper2.slidePrev();
          }
        }
        swiper2.emit("keyPress", kc);
        return void 0;
      },
      enable: function enable() {
        var swiper2 = this;
        if (swiper2.keyboard.enabled) {
          return;
        }
        $(doc).on("keydown", swiper2.keyboard.handle);
        swiper2.keyboard.enabled = true;
      },
      disable: function disable() {
        var swiper2 = this;
        if (!swiper2.keyboard.enabled) {
          return;
        }
        $(doc).off("keydown", swiper2.keyboard.handle);
        swiper2.keyboard.enabled = false;
      }
    };
    var Keyboard$1 = {
      name: "keyboard",
      params: {
        keyboard: {
          enabled: false,
          onlyInViewport: true
        }
      },
      create: function create() {
        var swiper2 = this;
        Utils.extend(swiper2, {
          keyboard: {
            enabled: false,
            enable: Keyboard.enable.bind(swiper2),
            disable: Keyboard.disable.bind(swiper2),
            handle: Keyboard.handle.bind(swiper2)
          }
        });
      },
      on: {
        init: function init() {
          var swiper2 = this;
          if (swiper2.params.keyboard.enabled) {
            swiper2.keyboard.enable();
          }
        },
        destroy: function destroy() {
          var swiper2 = this;
          if (swiper2.keyboard.enabled) {
            swiper2.keyboard.disable();
          }
        }
      }
    };
    function isEventSupported() {
      var eventName = "onwheel";
      var isSupported = eventName in doc;
      if (!isSupported) {
        var element = doc.createElement("div");
        element.setAttribute(eventName, "return;");
        isSupported = typeof element[eventName] === "function";
      }
      if (!isSupported && doc.implementation && doc.implementation.hasFeature && doc.implementation.hasFeature("", "") !== true) {
        isSupported = doc.implementation.hasFeature("Events.wheel", "3.0");
      }
      return isSupported;
    }
    var Mousewheel = {
      lastScrollTime: Utils.now(),
      event: function getEvent() {
        if (win.navigator.userAgent.indexOf("firefox") > -1) {
          return "DOMMouseScroll";
        }
        return isEventSupported() ? "wheel" : "mousewheel";
      }(),
      normalize: function normalize(e) {
        var PIXEL_STEP = 10;
        var LINE_HEIGHT = 40;
        var PAGE_HEIGHT = 800;
        var sX = 0;
        var sY = 0;
        var pX = 0;
        var pY = 0;
        if ("detail" in e) {
          sY = e.detail;
        }
        if ("wheelDelta" in e) {
          sY = -e.wheelDelta / 120;
        }
        if ("wheelDeltaY" in e) {
          sY = -e.wheelDeltaY / 120;
        }
        if ("wheelDeltaX" in e) {
          sX = -e.wheelDeltaX / 120;
        }
        if ("axis" in e && e.axis === e.HORIZONTAL_AXIS) {
          sX = sY;
          sY = 0;
        }
        pX = sX * PIXEL_STEP;
        pY = sY * PIXEL_STEP;
        if ("deltaY" in e) {
          pY = e.deltaY;
        }
        if ("deltaX" in e) {
          pX = e.deltaX;
        }
        if ((pX || pY) && e.deltaMode) {
          if (e.deltaMode === 1) {
            pX *= LINE_HEIGHT;
            pY *= LINE_HEIGHT;
          } else {
            pX *= PAGE_HEIGHT;
            pY *= PAGE_HEIGHT;
          }
        }
        if (pX && !sX) {
          sX = pX < 1 ? -1 : 1;
        }
        if (pY && !sY) {
          sY = pY < 1 ? -1 : 1;
        }
        return {
          spinX: sX,
          spinY: sY,
          pixelX: pX,
          pixelY: pY
        };
      },
      handleMouseEnter: function handleMouseEnter() {
        var swiper2 = this;
        swiper2.mouseEntered = true;
      },
      handleMouseLeave: function handleMouseLeave() {
        var swiper2 = this;
        swiper2.mouseEntered = false;
      },
      handle: function handle(event) {
        var e = event;
        var swiper2 = this;
        var params = swiper2.params.mousewheel;
        if (!swiper2.mouseEntered && !params.releaseOnEdges) {
          return true;
        }
        if (e.originalEvent) {
          e = e.originalEvent;
        }
        var delta = 0;
        var rtlFactor = swiper2.rtlTranslate ? -1 : 1;
        var data2 = Mousewheel.normalize(e);
        if (params.forceToAxis) {
          if (swiper2.isHorizontal()) {
            if (Math.abs(data2.pixelX) > Math.abs(data2.pixelY)) {
              delta = data2.pixelX * rtlFactor;
            } else {
              return true;
            }
          } else if (Math.abs(data2.pixelY) > Math.abs(data2.pixelX)) {
            delta = data2.pixelY;
          } else {
            return true;
          }
        } else {
          delta = Math.abs(data2.pixelX) > Math.abs(data2.pixelY) ? -data2.pixelX * rtlFactor : -data2.pixelY;
        }
        if (delta === 0) {
          return true;
        }
        if (params.invert) {
          delta = -delta;
        }
        if (!swiper2.params.freeMode) {
          if (Utils.now() - swiper2.mousewheel.lastScrollTime > 60) {
            if (delta < 0) {
              if ((!swiper2.isEnd || swiper2.params.loop) && !swiper2.animating) {
                swiper2.slideNext();
                swiper2.emit("scroll", e);
              } else if (params.releaseOnEdges) {
                return true;
              }
            } else if ((!swiper2.isBeginning || swiper2.params.loop) && !swiper2.animating) {
              swiper2.slidePrev();
              swiper2.emit("scroll", e);
            } else if (params.releaseOnEdges) {
              return true;
            }
          }
          swiper2.mousewheel.lastScrollTime = new win.Date().getTime();
        } else {
          if (swiper2.params.loop) {
            swiper2.loopFix();
          }
          var position = swiper2.getTranslate() + delta * params.sensitivity;
          var wasBeginning = swiper2.isBeginning;
          var wasEnd = swiper2.isEnd;
          if (position >= swiper2.minTranslate()) {
            position = swiper2.minTranslate();
          }
          if (position <= swiper2.maxTranslate()) {
            position = swiper2.maxTranslate();
          }
          swiper2.setTransition(0);
          swiper2.setTranslate(position);
          swiper2.updateProgress();
          swiper2.updateActiveIndex();
          swiper2.updateSlidesClasses();
          if (!wasBeginning && swiper2.isBeginning || !wasEnd && swiper2.isEnd) {
            swiper2.updateSlidesClasses();
          }
          if (swiper2.params.freeModeSticky) {
            clearTimeout(swiper2.mousewheel.timeout);
            swiper2.mousewheel.timeout = Utils.nextTick(function() {
              swiper2.slideToClosest();
            }, 300);
          }
          swiper2.emit("scroll", e);
          if (swiper2.params.autoplay && swiper2.params.autoplayDisableOnInteraction) {
            swiper2.autoplay.stop();
          }
          if (position === swiper2.minTranslate() || position === swiper2.maxTranslate()) {
            return true;
          }
        }
        if (e.preventDefault) {
          e.preventDefault();
        } else {
          e.returnValue = false;
        }
        return false;
      },
      enable: function enable() {
        var swiper2 = this;
        if (!Mousewheel.event) {
          return false;
        }
        if (swiper2.mousewheel.enabled) {
          return false;
        }
        var target = swiper2.$el;
        if (swiper2.params.mousewheel.eventsTarged !== "container") {
          target = $(swiper2.params.mousewheel.eventsTarged);
        }
        target.on("mouseenter", swiper2.mousewheel.handleMouseEnter);
        target.on("mouseleave", swiper2.mousewheel.handleMouseLeave);
        target.on(Mousewheel.event, swiper2.mousewheel.handle);
        swiper2.mousewheel.enabled = true;
        return true;
      },
      disable: function disable() {
        var swiper2 = this;
        if (!Mousewheel.event) {
          return false;
        }
        if (!swiper2.mousewheel.enabled) {
          return false;
        }
        var target = swiper2.$el;
        if (swiper2.params.mousewheel.eventsTarged !== "container") {
          target = $(swiper2.params.mousewheel.eventsTarged);
        }
        target.off(Mousewheel.event, swiper2.mousewheel.handle);
        swiper2.mousewheel.enabled = false;
        return true;
      }
    };
    var Mousewheel$1 = {
      name: "mousewheel",
      params: {
        mousewheel: {
          enabled: false,
          releaseOnEdges: false,
          invert: false,
          forceToAxis: false,
          sensitivity: 1,
          eventsTarged: "container"
        }
      },
      create: function create() {
        var swiper2 = this;
        Utils.extend(swiper2, {
          mousewheel: {
            enabled: false,
            enable: Mousewheel.enable.bind(swiper2),
            disable: Mousewheel.disable.bind(swiper2),
            handle: Mousewheel.handle.bind(swiper2),
            handleMouseEnter: Mousewheel.handleMouseEnter.bind(swiper2),
            handleMouseLeave: Mousewheel.handleMouseLeave.bind(swiper2),
            lastScrollTime: Utils.now()
          }
        });
      },
      on: {
        init: function init() {
          var swiper2 = this;
          if (swiper2.params.mousewheel.enabled) {
            swiper2.mousewheel.enable();
          }
        },
        destroy: function destroy() {
          var swiper2 = this;
          if (swiper2.mousewheel.enabled) {
            swiper2.mousewheel.disable();
          }
        }
      }
    };
    var Navigation = {
      update: function update2() {
        var swiper2 = this;
        var params = swiper2.params.navigation;
        if (swiper2.params.loop) {
          return;
        }
        var ref = swiper2.navigation;
        var $nextEl = ref.$nextEl;
        var $prevEl = ref.$prevEl;
        if ($prevEl && $prevEl.length > 0) {
          if (swiper2.isBeginning) {
            $prevEl.addClass(params.disabledClass);
          } else {
            $prevEl.removeClass(params.disabledClass);
          }
          $prevEl[swiper2.params.watchOverflow && swiper2.isLocked ? "addClass" : "removeClass"](params.lockClass);
        }
        if ($nextEl && $nextEl.length > 0) {
          if (swiper2.isEnd) {
            $nextEl.addClass(params.disabledClass);
          } else {
            $nextEl.removeClass(params.disabledClass);
          }
          $nextEl[swiper2.params.watchOverflow && swiper2.isLocked ? "addClass" : "removeClass"](params.lockClass);
        }
      },
      onPrevClick: function onPrevClick(e) {
        var swiper2 = this;
        e.preventDefault();
        if (swiper2.isBeginning && !swiper2.params.loop) {
          return;
        }
        swiper2.slidePrev();
      },
      onNextClick: function onNextClick(e) {
        var swiper2 = this;
        e.preventDefault();
        if (swiper2.isEnd && !swiper2.params.loop) {
          return;
        }
        swiper2.slideNext();
      },
      init: function init() {
        var swiper2 = this;
        var params = swiper2.params.navigation;
        if (!(params.nextEl || params.prevEl)) {
          return;
        }
        var $nextEl;
        var $prevEl;
        if (params.nextEl) {
          $nextEl = $(params.nextEl);
          if (swiper2.params.uniqueNavElements && typeof params.nextEl === "string" && $nextEl.length > 1 && swiper2.$el.find(params.nextEl).length === 1) {
            $nextEl = swiper2.$el.find(params.nextEl);
          }
        }
        if (params.prevEl) {
          $prevEl = $(params.prevEl);
          if (swiper2.params.uniqueNavElements && typeof params.prevEl === "string" && $prevEl.length > 1 && swiper2.$el.find(params.prevEl).length === 1) {
            $prevEl = swiper2.$el.find(params.prevEl);
          }
        }
        if ($nextEl && $nextEl.length > 0) {
          $nextEl.on("click", swiper2.navigation.onNextClick);
        }
        if ($prevEl && $prevEl.length > 0) {
          $prevEl.on("click", swiper2.navigation.onPrevClick);
        }
        Utils.extend(swiper2.navigation, {
          $nextEl,
          nextEl: $nextEl && $nextEl[0],
          $prevEl,
          prevEl: $prevEl && $prevEl[0]
        });
      },
      destroy: function destroy() {
        var swiper2 = this;
        var ref = swiper2.navigation;
        var $nextEl = ref.$nextEl;
        var $prevEl = ref.$prevEl;
        if ($nextEl && $nextEl.length) {
          $nextEl.off("click", swiper2.navigation.onNextClick);
          $nextEl.removeClass(swiper2.params.navigation.disabledClass);
        }
        if ($prevEl && $prevEl.length) {
          $prevEl.off("click", swiper2.navigation.onPrevClick);
          $prevEl.removeClass(swiper2.params.navigation.disabledClass);
        }
      }
    };
    var Navigation$1 = {
      name: "navigation",
      params: {
        navigation: {
          nextEl: null,
          prevEl: null,
          hideOnClick: false,
          disabledClass: "swiper-button-disabled",
          hiddenClass: "swiper-button-hidden",
          lockClass: "swiper-button-lock"
        }
      },
      create: function create() {
        var swiper2 = this;
        Utils.extend(swiper2, {
          navigation: {
            init: Navigation.init.bind(swiper2),
            update: Navigation.update.bind(swiper2),
            destroy: Navigation.destroy.bind(swiper2),
            onNextClick: Navigation.onNextClick.bind(swiper2),
            onPrevClick: Navigation.onPrevClick.bind(swiper2)
          }
        });
      },
      on: {
        init: function init() {
          var swiper2 = this;
          swiper2.navigation.init();
          swiper2.navigation.update();
        },
        toEdge: function toEdge() {
          var swiper2 = this;
          swiper2.navigation.update();
        },
        fromEdge: function fromEdge() {
          var swiper2 = this;
          swiper2.navigation.update();
        },
        destroy: function destroy() {
          var swiper2 = this;
          swiper2.navigation.destroy();
        },
        click: function click(e) {
          var swiper2 = this;
          var ref = swiper2.navigation;
          var $nextEl = ref.$nextEl;
          var $prevEl = ref.$prevEl;
          if (swiper2.params.navigation.hideOnClick && !$(e.target).is($prevEl) && !$(e.target).is($nextEl)) {
            var isHidden;
            if ($nextEl) {
              isHidden = $nextEl.hasClass(swiper2.params.navigation.hiddenClass);
            } else if ($prevEl) {
              isHidden = $prevEl.hasClass(swiper2.params.navigation.hiddenClass);
            }
            if (isHidden === true) {
              swiper2.emit("navigationShow", swiper2);
            } else {
              swiper2.emit("navigationHide", swiper2);
            }
            if ($nextEl) {
              $nextEl.toggleClass(swiper2.params.navigation.hiddenClass);
            }
            if ($prevEl) {
              $prevEl.toggleClass(swiper2.params.navigation.hiddenClass);
            }
          }
        }
      }
    };
    var Pagination = {
      update: function update2() {
        var swiper2 = this;
        var rtl = swiper2.rtl;
        var params = swiper2.params.pagination;
        if (!params.el || !swiper2.pagination.el || !swiper2.pagination.$el || swiper2.pagination.$el.length === 0) {
          return;
        }
        var slidesLength = swiper2.virtual && swiper2.params.virtual.enabled ? swiper2.virtual.slides.length : swiper2.slides.length;
        var $el = swiper2.pagination.$el;
        var current;
        var total = swiper2.params.loop ? Math.ceil((slidesLength - swiper2.loopedSlides * 2) / swiper2.params.slidesPerGroup) : swiper2.snapGrid.length;
        if (swiper2.params.loop) {
          current = Math.ceil((swiper2.activeIndex - swiper2.loopedSlides) / swiper2.params.slidesPerGroup);
          if (current > slidesLength - 1 - swiper2.loopedSlides * 2) {
            current -= slidesLength - swiper2.loopedSlides * 2;
          }
          if (current > total - 1) {
            current -= total;
          }
          if (current < 0 && swiper2.params.paginationType !== "bullets") {
            current = total + current;
          }
        } else if (typeof swiper2.snapIndex !== "undefined") {
          current = swiper2.snapIndex;
        } else {
          current = swiper2.activeIndex || 0;
        }
        if (params.type === "bullets" && swiper2.pagination.bullets && swiper2.pagination.bullets.length > 0) {
          var bullets = swiper2.pagination.bullets;
          var firstIndex;
          var lastIndex;
          var midIndex;
          if (params.dynamicBullets) {
            swiper2.pagination.bulletSize = bullets.eq(0)[swiper2.isHorizontal() ? "outerWidth" : "outerHeight"](true);
            $el.css(swiper2.isHorizontal() ? "width" : "height", swiper2.pagination.bulletSize * (params.dynamicMainBullets + 4) + "px");
            if (params.dynamicMainBullets > 1 && swiper2.previousIndex !== void 0) {
              swiper2.pagination.dynamicBulletIndex += current - swiper2.previousIndex;
              if (swiper2.pagination.dynamicBulletIndex > params.dynamicMainBullets - 1) {
                swiper2.pagination.dynamicBulletIndex = params.dynamicMainBullets - 1;
              } else if (swiper2.pagination.dynamicBulletIndex < 0) {
                swiper2.pagination.dynamicBulletIndex = 0;
              }
            }
            firstIndex = current - swiper2.pagination.dynamicBulletIndex;
            lastIndex = firstIndex + (Math.min(bullets.length, params.dynamicMainBullets) - 1);
            midIndex = (lastIndex + firstIndex) / 2;
          }
          bullets.removeClass(params.bulletActiveClass + " " + params.bulletActiveClass + "-next " + params.bulletActiveClass + "-next-next " + params.bulletActiveClass + "-prev " + params.bulletActiveClass + "-prev-prev " + params.bulletActiveClass + "-main");
          if ($el.length > 1) {
            bullets.each(function(index2, bullet) {
              var $bullet2 = $(bullet);
              var bulletIndex = $bullet2.index();
              if (bulletIndex === current) {
                $bullet2.addClass(params.bulletActiveClass);
              }
              if (params.dynamicBullets) {
                if (bulletIndex >= firstIndex && bulletIndex <= lastIndex) {
                  $bullet2.addClass(params.bulletActiveClass + "-main");
                }
                if (bulletIndex === firstIndex) {
                  $bullet2.prev().addClass(params.bulletActiveClass + "-prev").prev().addClass(params.bulletActiveClass + "-prev-prev");
                }
                if (bulletIndex === lastIndex) {
                  $bullet2.next().addClass(params.bulletActiveClass + "-next").next().addClass(params.bulletActiveClass + "-next-next");
                }
              }
            });
          } else {
            var $bullet = bullets.eq(current);
            $bullet.addClass(params.bulletActiveClass);
            if (params.dynamicBullets) {
              var $firstDisplayedBullet = bullets.eq(firstIndex);
              var $lastDisplayedBullet = bullets.eq(lastIndex);
              for (var i = firstIndex; i <= lastIndex; i += 1) {
                bullets.eq(i).addClass(params.bulletActiveClass + "-main");
              }
              $firstDisplayedBullet.prev().addClass(params.bulletActiveClass + "-prev").prev().addClass(params.bulletActiveClass + "-prev-prev");
              $lastDisplayedBullet.next().addClass(params.bulletActiveClass + "-next").next().addClass(params.bulletActiveClass + "-next-next");
            }
          }
          if (params.dynamicBullets) {
            var dynamicBulletsLength = Math.min(bullets.length, params.dynamicMainBullets + 4);
            var bulletsOffset = (swiper2.pagination.bulletSize * dynamicBulletsLength - swiper2.pagination.bulletSize) / 2 - midIndex * swiper2.pagination.bulletSize;
            var offsetProp = rtl ? "right" : "left";
            bullets.css(swiper2.isHorizontal() ? offsetProp : "top", bulletsOffset + "px");
          }
        }
        if (params.type === "fraction") {
          $el.find("." + params.currentClass).text(params.formatFractionCurrent(current + 1));
          $el.find("." + params.totalClass).text(params.formatFractionTotal(total));
        }
        if (params.type === "progressbar") {
          var progressbarDirection;
          if (params.progressbarOpposite) {
            progressbarDirection = swiper2.isHorizontal() ? "vertical" : "horizontal";
          } else {
            progressbarDirection = swiper2.isHorizontal() ? "horizontal" : "vertical";
          }
          var scale = (current + 1) / total;
          var scaleX = 1;
          var scaleY = 1;
          if (progressbarDirection === "horizontal") {
            scaleX = scale;
          } else {
            scaleY = scale;
          }
          $el.find("." + params.progressbarFillClass).transform("translate3d(0,0,0) scaleX(" + scaleX + ") scaleY(" + scaleY + ")").transition(swiper2.params.speed);
        }
        if (params.type === "custom" && params.renderCustom) {
          $el.html(params.renderCustom(swiper2, current + 1, total));
          swiper2.emit("paginationRender", swiper2, $el[0]);
        } else {
          swiper2.emit("paginationUpdate", swiper2, $el[0]);
        }
        $el[swiper2.params.watchOverflow && swiper2.isLocked ? "addClass" : "removeClass"](params.lockClass);
      },
      render: function render2() {
        var swiper2 = this;
        var params = swiper2.params.pagination;
        if (!params.el || !swiper2.pagination.el || !swiper2.pagination.$el || swiper2.pagination.$el.length === 0) {
          return;
        }
        var slidesLength = swiper2.virtual && swiper2.params.virtual.enabled ? swiper2.virtual.slides.length : swiper2.slides.length;
        var $el = swiper2.pagination.$el;
        var paginationHTML = "";
        if (params.type === "bullets") {
          var numberOfBullets = swiper2.params.loop ? Math.ceil((slidesLength - swiper2.loopedSlides * 2) / swiper2.params.slidesPerGroup) : swiper2.snapGrid.length;
          for (var i = 0; i < numberOfBullets; i += 1) {
            if (params.renderBullet) {
              paginationHTML += params.renderBullet.call(swiper2, i, params.bulletClass);
            } else {
              paginationHTML += "<" + params.bulletElement + ' class="' + params.bulletClass + '"></' + params.bulletElement + ">";
            }
          }
          $el.html(paginationHTML);
          swiper2.pagination.bullets = $el.find("." + params.bulletClass);
        }
        if (params.type === "fraction") {
          if (params.renderFraction) {
            paginationHTML = params.renderFraction.call(swiper2, params.currentClass, params.totalClass);
          } else {
            paginationHTML = '<span class="' + params.currentClass + '"></span> / <span class="' + params.totalClass + '"></span>';
          }
          $el.html(paginationHTML);
        }
        if (params.type === "progressbar") {
          if (params.renderProgressbar) {
            paginationHTML = params.renderProgressbar.call(swiper2, params.progressbarFillClass);
          } else {
            paginationHTML = '<span class="' + params.progressbarFillClass + '"></span>';
          }
          $el.html(paginationHTML);
        }
        if (params.type !== "custom") {
          swiper2.emit("paginationRender", swiper2.pagination.$el[0]);
        }
      },
      init: function init() {
        var swiper2 = this;
        var params = swiper2.params.pagination;
        if (!params.el) {
          return;
        }
        var $el = $(params.el);
        if ($el.length === 0) {
          return;
        }
        if (swiper2.params.uniqueNavElements && typeof params.el === "string" && $el.length > 1 && swiper2.$el.find(params.el).length === 1) {
          $el = swiper2.$el.find(params.el);
        }
        if (params.type === "bullets" && params.clickable) {
          $el.addClass(params.clickableClass);
        }
        $el.addClass(params.modifierClass + params.type);
        if (params.type === "bullets" && params.dynamicBullets) {
          $el.addClass("" + params.modifierClass + params.type + "-dynamic");
          swiper2.pagination.dynamicBulletIndex = 0;
          if (params.dynamicMainBullets < 1) {
            params.dynamicMainBullets = 1;
          }
        }
        if (params.type === "progressbar" && params.progressbarOpposite) {
          $el.addClass(params.progressbarOppositeClass);
        }
        if (params.clickable) {
          $el.on("click", "." + params.bulletClass, function onClick2(e) {
            e.preventDefault();
            var index2 = $(this).index() * swiper2.params.slidesPerGroup;
            if (swiper2.params.loop) {
              index2 += swiper2.loopedSlides;
            }
            swiper2.slideTo(index2);
          });
        }
        Utils.extend(swiper2.pagination, {
          $el,
          el: $el[0]
        });
      },
      destroy: function destroy() {
        var swiper2 = this;
        var params = swiper2.params.pagination;
        if (!params.el || !swiper2.pagination.el || !swiper2.pagination.$el || swiper2.pagination.$el.length === 0) {
          return;
        }
        var $el = swiper2.pagination.$el;
        $el.removeClass(params.hiddenClass);
        $el.removeClass(params.modifierClass + params.type);
        if (swiper2.pagination.bullets) {
          swiper2.pagination.bullets.removeClass(params.bulletActiveClass);
        }
        if (params.clickable) {
          $el.off("click", "." + params.bulletClass);
        }
      }
    };
    var Pagination$1 = {
      name: "pagination",
      params: {
        pagination: {
          el: null,
          bulletElement: "span",
          clickable: false,
          hideOnClick: false,
          renderBullet: null,
          renderProgressbar: null,
          renderFraction: null,
          renderCustom: null,
          progressbarOpposite: false,
          type: "bullets",
          // 'bullets' or 'progressbar' or 'fraction' or 'custom'
          dynamicBullets: false,
          dynamicMainBullets: 1,
          formatFractionCurrent: function(number) {
            return number;
          },
          formatFractionTotal: function(number) {
            return number;
          },
          bulletClass: "swiper-pagination-bullet",
          bulletActiveClass: "swiper-pagination-bullet-active",
          modifierClass: "swiper-pagination-",
          // NEW
          currentClass: "swiper-pagination-current",
          totalClass: "swiper-pagination-total",
          hiddenClass: "swiper-pagination-hidden",
          progressbarFillClass: "swiper-pagination-progressbar-fill",
          progressbarOppositeClass: "swiper-pagination-progressbar-opposite",
          clickableClass: "swiper-pagination-clickable",
          // NEW
          lockClass: "swiper-pagination-lock"
        }
      },
      create: function create() {
        var swiper2 = this;
        Utils.extend(swiper2, {
          pagination: {
            init: Pagination.init.bind(swiper2),
            render: Pagination.render.bind(swiper2),
            update: Pagination.update.bind(swiper2),
            destroy: Pagination.destroy.bind(swiper2),
            dynamicBulletIndex: 0
          }
        });
      },
      on: {
        init: function init() {
          var swiper2 = this;
          swiper2.pagination.init();
          swiper2.pagination.render();
          swiper2.pagination.update();
        },
        activeIndexChange: function activeIndexChange() {
          var swiper2 = this;
          if (swiper2.params.loop) {
            swiper2.pagination.update();
          } else if (typeof swiper2.snapIndex === "undefined") {
            swiper2.pagination.update();
          }
        },
        snapIndexChange: function snapIndexChange() {
          var swiper2 = this;
          if (!swiper2.params.loop) {
            swiper2.pagination.update();
          }
        },
        slidesLengthChange: function slidesLengthChange() {
          var swiper2 = this;
          if (swiper2.params.loop) {
            swiper2.pagination.render();
            swiper2.pagination.update();
          }
        },
        snapGridLengthChange: function snapGridLengthChange() {
          var swiper2 = this;
          if (!swiper2.params.loop) {
            swiper2.pagination.render();
            swiper2.pagination.update();
          }
        },
        destroy: function destroy() {
          var swiper2 = this;
          swiper2.pagination.destroy();
        },
        click: function click(e) {
          var swiper2 = this;
          if (swiper2.params.pagination.el && swiper2.params.pagination.hideOnClick && swiper2.pagination.$el.length > 0 && !$(e.target).hasClass(swiper2.params.pagination.bulletClass)) {
            var isHidden = swiper2.pagination.$el.hasClass(swiper2.params.pagination.hiddenClass);
            if (isHidden === true) {
              swiper2.emit("paginationShow", swiper2);
            } else {
              swiper2.emit("paginationHide", swiper2);
            }
            swiper2.pagination.$el.toggleClass(swiper2.params.pagination.hiddenClass);
          }
        }
      }
    };
    var Scrollbar = {
      setTranslate: function setTranslate2() {
        var swiper2 = this;
        if (!swiper2.params.scrollbar.el || !swiper2.scrollbar.el) {
          return;
        }
        var scrollbar = swiper2.scrollbar;
        var rtl = swiper2.rtlTranslate;
        var progress = swiper2.progress;
        var dragSize = scrollbar.dragSize;
        var trackSize = scrollbar.trackSize;
        var $dragEl = scrollbar.$dragEl;
        var $el = scrollbar.$el;
        var params = swiper2.params.scrollbar;
        var newSize = dragSize;
        var newPos = (trackSize - dragSize) * progress;
        if (rtl) {
          newPos = -newPos;
          if (newPos > 0) {
            newSize = dragSize - newPos;
            newPos = 0;
          } else if (-newPos + dragSize > trackSize) {
            newSize = trackSize + newPos;
          }
        } else if (newPos < 0) {
          newSize = dragSize + newPos;
          newPos = 0;
        } else if (newPos + dragSize > trackSize) {
          newSize = trackSize - newPos;
        }
        if (swiper2.isHorizontal()) {
          if (Support.transforms3d) {
            $dragEl.transform("translate3d(" + newPos + "px, 0, 0)");
          } else {
            $dragEl.transform("translateX(" + newPos + "px)");
          }
          $dragEl[0].style.width = newSize + "px";
        } else {
          if (Support.transforms3d) {
            $dragEl.transform("translate3d(0px, " + newPos + "px, 0)");
          } else {
            $dragEl.transform("translateY(" + newPos + "px)");
          }
          $dragEl[0].style.height = newSize + "px";
        }
        if (params.hide) {
          clearTimeout(swiper2.scrollbar.timeout);
          $el[0].style.opacity = 1;
          swiper2.scrollbar.timeout = setTimeout(function() {
            $el[0].style.opacity = 0;
            $el.transition(400);
          }, 1e3);
        }
      },
      setTransition: function setTransition2(duration) {
        var swiper2 = this;
        if (!swiper2.params.scrollbar.el || !swiper2.scrollbar.el) {
          return;
        }
        swiper2.scrollbar.$dragEl.transition(duration);
      },
      updateSize: function updateSize2() {
        var swiper2 = this;
        if (!swiper2.params.scrollbar.el || !swiper2.scrollbar.el) {
          return;
        }
        var scrollbar = swiper2.scrollbar;
        var $dragEl = scrollbar.$dragEl;
        var $el = scrollbar.$el;
        $dragEl[0].style.width = "";
        $dragEl[0].style.height = "";
        var trackSize = swiper2.isHorizontal() ? $el[0].offsetWidth : $el[0].offsetHeight;
        var divider = swiper2.size / swiper2.virtualSize;
        var moveDivider = divider * (trackSize / swiper2.size);
        var dragSize;
        if (swiper2.params.scrollbar.dragSize === "auto") {
          dragSize = trackSize * divider;
        } else {
          dragSize = parseInt(swiper2.params.scrollbar.dragSize, 10);
        }
        if (swiper2.isHorizontal()) {
          $dragEl[0].style.width = dragSize + "px";
        } else {
          $dragEl[0].style.height = dragSize + "px";
        }
        if (divider >= 1) {
          $el[0].style.display = "none";
        } else {
          $el[0].style.display = "";
        }
        if (swiper2.params.scrollbar.hide) {
          $el[0].style.opacity = 0;
        }
        Utils.extend(scrollbar, {
          trackSize,
          divider,
          moveDivider,
          dragSize
        });
        scrollbar.$el[swiper2.params.watchOverflow && swiper2.isLocked ? "addClass" : "removeClass"](swiper2.params.scrollbar.lockClass);
      },
      getPointerPosition: function getPointerPosition(e) {
        var swiper2 = this;
        if (swiper2.isHorizontal()) {
          return e.type === "touchstart" || e.type === "touchmove" ? e.targetTouches[0].pageX : e.pageX || e.clientX;
        }
        return e.type === "touchstart" || e.type === "touchmove" ? e.targetTouches[0].pageY : e.pageY || e.clientY;
      },
      setDragPosition: function setDragPosition(e) {
        var swiper2 = this;
        var scrollbar = swiper2.scrollbar;
        var rtl = swiper2.rtlTranslate;
        var $el = scrollbar.$el;
        var dragSize = scrollbar.dragSize;
        var trackSize = scrollbar.trackSize;
        var dragStartPos = scrollbar.dragStartPos;
        var positionRatio;
        positionRatio = (scrollbar.getPointerPosition(e) - $el.offset()[swiper2.isHorizontal() ? "left" : "top"] - (dragStartPos !== null ? dragStartPos : dragSize / 2)) / (trackSize - dragSize);
        positionRatio = Math.max(Math.min(positionRatio, 1), 0);
        if (rtl) {
          positionRatio = 1 - positionRatio;
        }
        var position = swiper2.minTranslate() + (swiper2.maxTranslate() - swiper2.minTranslate()) * positionRatio;
        swiper2.updateProgress(position);
        swiper2.setTranslate(position);
        swiper2.updateActiveIndex();
        swiper2.updateSlidesClasses();
      },
      onDragStart: function onDragStart(e) {
        var swiper2 = this;
        var params = swiper2.params.scrollbar;
        var scrollbar = swiper2.scrollbar;
        var $wrapperEl = swiper2.$wrapperEl;
        var $el = scrollbar.$el;
        var $dragEl = scrollbar.$dragEl;
        swiper2.scrollbar.isTouched = true;
        swiper2.scrollbar.dragStartPos = e.target === $dragEl[0] || e.target === $dragEl ? scrollbar.getPointerPosition(e) - e.target.getBoundingClientRect()[swiper2.isHorizontal() ? "left" : "top"] : null;
        e.preventDefault();
        e.stopPropagation();
        $wrapperEl.transition(100);
        $dragEl.transition(100);
        scrollbar.setDragPosition(e);
        clearTimeout(swiper2.scrollbar.dragTimeout);
        $el.transition(0);
        if (params.hide) {
          $el.css("opacity", 1);
        }
        swiper2.emit("scrollbarDragStart", e);
      },
      onDragMove: function onDragMove(e) {
        var swiper2 = this;
        var scrollbar = swiper2.scrollbar;
        var $wrapperEl = swiper2.$wrapperEl;
        var $el = scrollbar.$el;
        var $dragEl = scrollbar.$dragEl;
        if (!swiper2.scrollbar.isTouched) {
          return;
        }
        if (e.preventDefault) {
          e.preventDefault();
        } else {
          e.returnValue = false;
        }
        scrollbar.setDragPosition(e);
        $wrapperEl.transition(0);
        $el.transition(0);
        $dragEl.transition(0);
        swiper2.emit("scrollbarDragMove", e);
      },
      onDragEnd: function onDragEnd(e) {
        var swiper2 = this;
        var params = swiper2.params.scrollbar;
        var scrollbar = swiper2.scrollbar;
        var $el = scrollbar.$el;
        if (!swiper2.scrollbar.isTouched) {
          return;
        }
        swiper2.scrollbar.isTouched = false;
        if (params.hide) {
          clearTimeout(swiper2.scrollbar.dragTimeout);
          swiper2.scrollbar.dragTimeout = Utils.nextTick(function() {
            $el.css("opacity", 0);
            $el.transition(400);
          }, 1e3);
        }
        swiper2.emit("scrollbarDragEnd", e);
        if (params.snapOnRelease) {
          swiper2.slideToClosest();
        }
      },
      enableDraggable: function enableDraggable() {
        var swiper2 = this;
        if (!swiper2.params.scrollbar.el) {
          return;
        }
        var scrollbar = swiper2.scrollbar;
        var touchEventsTouch = swiper2.touchEventsTouch;
        var touchEventsDesktop = swiper2.touchEventsDesktop;
        var params = swiper2.params;
        var $el = scrollbar.$el;
        var target = $el[0];
        var activeListener = Support.passiveListener && params.passiveListeners ? { passive: false, capture: false } : false;
        var passiveListener = Support.passiveListener && params.passiveListeners ? { passive: true, capture: false } : false;
        if (!Support.touch) {
          target.addEventListener(touchEventsDesktop.start, swiper2.scrollbar.onDragStart, activeListener);
          doc.addEventListener(touchEventsDesktop.move, swiper2.scrollbar.onDragMove, activeListener);
          doc.addEventListener(touchEventsDesktop.end, swiper2.scrollbar.onDragEnd, passiveListener);
        } else {
          target.addEventListener(touchEventsTouch.start, swiper2.scrollbar.onDragStart, activeListener);
          target.addEventListener(touchEventsTouch.move, swiper2.scrollbar.onDragMove, activeListener);
          target.addEventListener(touchEventsTouch.end, swiper2.scrollbar.onDragEnd, passiveListener);
        }
      },
      disableDraggable: function disableDraggable() {
        var swiper2 = this;
        if (!swiper2.params.scrollbar.el) {
          return;
        }
        var scrollbar = swiper2.scrollbar;
        var touchEventsTouch = swiper2.touchEventsTouch;
        var touchEventsDesktop = swiper2.touchEventsDesktop;
        var params = swiper2.params;
        var $el = scrollbar.$el;
        var target = $el[0];
        var activeListener = Support.passiveListener && params.passiveListeners ? { passive: false, capture: false } : false;
        var passiveListener = Support.passiveListener && params.passiveListeners ? { passive: true, capture: false } : false;
        if (!Support.touch) {
          target.removeEventListener(touchEventsDesktop.start, swiper2.scrollbar.onDragStart, activeListener);
          doc.removeEventListener(touchEventsDesktop.move, swiper2.scrollbar.onDragMove, activeListener);
          doc.removeEventListener(touchEventsDesktop.end, swiper2.scrollbar.onDragEnd, passiveListener);
        } else {
          target.removeEventListener(touchEventsTouch.start, swiper2.scrollbar.onDragStart, activeListener);
          target.removeEventListener(touchEventsTouch.move, swiper2.scrollbar.onDragMove, activeListener);
          target.removeEventListener(touchEventsTouch.end, swiper2.scrollbar.onDragEnd, passiveListener);
        }
      },
      init: function init() {
        var swiper2 = this;
        if (!swiper2.params.scrollbar.el) {
          return;
        }
        var scrollbar = swiper2.scrollbar;
        var $swiperEl = swiper2.$el;
        var params = swiper2.params.scrollbar;
        var $el = $(params.el);
        if (swiper2.params.uniqueNavElements && typeof params.el === "string" && $el.length > 1 && $swiperEl.find(params.el).length === 1) {
          $el = $swiperEl.find(params.el);
        }
        var $dragEl = $el.find("." + swiper2.params.scrollbar.dragClass);
        if ($dragEl.length === 0) {
          $dragEl = $('<div class="' + swiper2.params.scrollbar.dragClass + '"></div>');
          $el.append($dragEl);
        }
        Utils.extend(scrollbar, {
          $el,
          el: $el[0],
          $dragEl,
          dragEl: $dragEl[0]
        });
        if (params.draggable) {
          scrollbar.enableDraggable();
        }
      },
      destroy: function destroy() {
        var swiper2 = this;
        swiper2.scrollbar.disableDraggable();
      }
    };
    var Scrollbar$1 = {
      name: "scrollbar",
      params: {
        scrollbar: {
          el: null,
          dragSize: "auto",
          hide: false,
          draggable: false,
          snapOnRelease: true,
          lockClass: "swiper-scrollbar-lock",
          dragClass: "swiper-scrollbar-drag"
        }
      },
      create: function create() {
        var swiper2 = this;
        Utils.extend(swiper2, {
          scrollbar: {
            init: Scrollbar.init.bind(swiper2),
            destroy: Scrollbar.destroy.bind(swiper2),
            updateSize: Scrollbar.updateSize.bind(swiper2),
            setTranslate: Scrollbar.setTranslate.bind(swiper2),
            setTransition: Scrollbar.setTransition.bind(swiper2),
            enableDraggable: Scrollbar.enableDraggable.bind(swiper2),
            disableDraggable: Scrollbar.disableDraggable.bind(swiper2),
            setDragPosition: Scrollbar.setDragPosition.bind(swiper2),
            getPointerPosition: Scrollbar.getPointerPosition.bind(swiper2),
            onDragStart: Scrollbar.onDragStart.bind(swiper2),
            onDragMove: Scrollbar.onDragMove.bind(swiper2),
            onDragEnd: Scrollbar.onDragEnd.bind(swiper2),
            isTouched: false,
            timeout: null,
            dragTimeout: null
          }
        });
      },
      on: {
        init: function init() {
          var swiper2 = this;
          swiper2.scrollbar.init();
          swiper2.scrollbar.updateSize();
          swiper2.scrollbar.setTranslate();
        },
        update: function update2() {
          var swiper2 = this;
          swiper2.scrollbar.updateSize();
        },
        resize: function resize() {
          var swiper2 = this;
          swiper2.scrollbar.updateSize();
        },
        observerUpdate: function observerUpdate() {
          var swiper2 = this;
          swiper2.scrollbar.updateSize();
        },
        setTranslate: function setTranslate2() {
          var swiper2 = this;
          swiper2.scrollbar.setTranslate();
        },
        setTransition: function setTransition2(duration) {
          var swiper2 = this;
          swiper2.scrollbar.setTransition(duration);
        },
        destroy: function destroy() {
          var swiper2 = this;
          swiper2.scrollbar.destroy();
        }
      }
    };
    var Parallax = {
      setTransform: function setTransform(el, progress) {
        var swiper2 = this;
        var rtl = swiper2.rtl;
        var $el = $(el);
        var rtlFactor = rtl ? -1 : 1;
        var p = $el.attr("data-swiper-parallax") || "0";
        var x = $el.attr("data-swiper-parallax-x");
        var y = $el.attr("data-swiper-parallax-y");
        var scale = $el.attr("data-swiper-parallax-scale");
        var opacity = $el.attr("data-swiper-parallax-opacity");
        if (x || y) {
          x = x || "0";
          y = y || "0";
        } else if (swiper2.isHorizontal()) {
          x = p;
          y = "0";
        } else {
          y = p;
          x = "0";
        }
        if (x.indexOf("%") >= 0) {
          x = parseInt(x, 10) * progress * rtlFactor + "%";
        } else {
          x = x * progress * rtlFactor + "px";
        }
        if (y.indexOf("%") >= 0) {
          y = parseInt(y, 10) * progress + "%";
        } else {
          y = y * progress + "px";
        }
        if (typeof opacity !== "undefined" && opacity !== null) {
          var currentOpacity = opacity - (opacity - 1) * (1 - Math.abs(progress));
          $el[0].style.opacity = currentOpacity;
        }
        if (typeof scale === "undefined" || scale === null) {
          $el.transform("translate3d(" + x + ", " + y + ", 0px)");
        } else {
          var currentScale = scale - (scale - 1) * (1 - Math.abs(progress));
          $el.transform("translate3d(" + x + ", " + y + ", 0px) scale(" + currentScale + ")");
        }
      },
      setTranslate: function setTranslate2() {
        var swiper2 = this;
        var $el = swiper2.$el;
        var slides = swiper2.slides;
        var progress = swiper2.progress;
        var snapGrid = swiper2.snapGrid;
        $el.children("[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]").each(function(index2, el) {
          swiper2.parallax.setTransform(el, progress);
        });
        slides.each(function(slideIndex, slideEl) {
          var slideProgress = slideEl.progress;
          if (swiper2.params.slidesPerGroup > 1 && swiper2.params.slidesPerView !== "auto") {
            slideProgress += Math.ceil(slideIndex / 2) - progress * (snapGrid.length - 1);
          }
          slideProgress = Math.min(Math.max(slideProgress, -1), 1);
          $(slideEl).find("[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]").each(function(index2, el) {
            swiper2.parallax.setTransform(el, slideProgress);
          });
        });
      },
      setTransition: function setTransition2(duration) {
        if (duration === void 0)
          duration = this.params.speed;
        var swiper2 = this;
        var $el = swiper2.$el;
        $el.find("[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]").each(function(index2, parallaxEl) {
          var $parallaxEl = $(parallaxEl);
          var parallaxDuration = parseInt($parallaxEl.attr("data-swiper-parallax-duration"), 10) || duration;
          if (duration === 0) {
            parallaxDuration = 0;
          }
          $parallaxEl.transition(parallaxDuration);
        });
      }
    };
    var Parallax$1 = {
      name: "parallax",
      params: {
        parallax: {
          enabled: false
        }
      },
      create: function create() {
        var swiper2 = this;
        Utils.extend(swiper2, {
          parallax: {
            setTransform: Parallax.setTransform.bind(swiper2),
            setTranslate: Parallax.setTranslate.bind(swiper2),
            setTransition: Parallax.setTransition.bind(swiper2)
          }
        });
      },
      on: {
        beforeInit: function beforeInit() {
          var swiper2 = this;
          if (!swiper2.params.parallax.enabled) {
            return;
          }
          swiper2.params.watchSlidesProgress = true;
          swiper2.originalParams.watchSlidesProgress = true;
        },
        init: function init() {
          var swiper2 = this;
          if (!swiper2.params.parallax.enabled) {
            return;
          }
          swiper2.parallax.setTranslate();
        },
        setTranslate: function setTranslate2() {
          var swiper2 = this;
          if (!swiper2.params.parallax.enabled) {
            return;
          }
          swiper2.parallax.setTranslate();
        },
        setTransition: function setTransition2(duration) {
          var swiper2 = this;
          if (!swiper2.params.parallax.enabled) {
            return;
          }
          swiper2.parallax.setTransition(duration);
        }
      }
    };
    var Zoom = {
      // Calc Scale From Multi-touches
      getDistanceBetweenTouches: function getDistanceBetweenTouches(e) {
        if (e.targetTouches.length < 2) {
          return 1;
        }
        var x1 = e.targetTouches[0].pageX;
        var y1 = e.targetTouches[0].pageY;
        var x2 = e.targetTouches[1].pageX;
        var y2 = e.targetTouches[1].pageY;
        var distance = Math.sqrt(Math.pow(x2 - x1, 2) + Math.pow(y2 - y1, 2));
        return distance;
      },
      // Events
      onGestureStart: function onGestureStart(e) {
        var swiper2 = this;
        var params = swiper2.params.zoom;
        var zoom = swiper2.zoom;
        var gesture = zoom.gesture;
        zoom.fakeGestureTouched = false;
        zoom.fakeGestureMoved = false;
        if (!Support.gestures) {
          if (e.type !== "touchstart" || e.type === "touchstart" && e.targetTouches.length < 2) {
            return;
          }
          zoom.fakeGestureTouched = true;
          gesture.scaleStart = Zoom.getDistanceBetweenTouches(e);
        }
        if (!gesture.$slideEl || !gesture.$slideEl.length) {
          gesture.$slideEl = $(e.target).closest(".swiper-slide");
          if (gesture.$slideEl.length === 0) {
            gesture.$slideEl = swiper2.slides.eq(swiper2.activeIndex);
          }
          gesture.$imageEl = gesture.$slideEl.find("img, svg, canvas");
          gesture.$imageWrapEl = gesture.$imageEl.parent("." + params.containerClass);
          gesture.maxRatio = gesture.$imageWrapEl.attr("data-swiper-zoom") || params.maxRatio;
          if (gesture.$imageWrapEl.length === 0) {
            gesture.$imageEl = void 0;
            return;
          }
        }
        gesture.$imageEl.transition(0);
        swiper2.zoom.isScaling = true;
      },
      onGestureChange: function onGestureChange(e) {
        var swiper2 = this;
        var params = swiper2.params.zoom;
        var zoom = swiper2.zoom;
        var gesture = zoom.gesture;
        if (!Support.gestures) {
          if (e.type !== "touchmove" || e.type === "touchmove" && e.targetTouches.length < 2) {
            return;
          }
          zoom.fakeGestureMoved = true;
          gesture.scaleMove = Zoom.getDistanceBetweenTouches(e);
        }
        if (!gesture.$imageEl || gesture.$imageEl.length === 0) {
          return;
        }
        if (Support.gestures) {
          zoom.scale = e.scale * zoom.currentScale;
        } else {
          zoom.scale = gesture.scaleMove / gesture.scaleStart * zoom.currentScale;
        }
        if (zoom.scale > gesture.maxRatio) {
          zoom.scale = gesture.maxRatio - 1 + Math.pow(zoom.scale - gesture.maxRatio + 1, 0.5);
        }
        if (zoom.scale < params.minRatio) {
          zoom.scale = params.minRatio + 1 - Math.pow(params.minRatio - zoom.scale + 1, 0.5);
        }
        gesture.$imageEl.transform("translate3d(0,0,0) scale(" + zoom.scale + ")");
      },
      onGestureEnd: function onGestureEnd(e) {
        var swiper2 = this;
        var params = swiper2.params.zoom;
        var zoom = swiper2.zoom;
        var gesture = zoom.gesture;
        if (!Support.gestures) {
          if (!zoom.fakeGestureTouched || !zoom.fakeGestureMoved) {
            return;
          }
          if (e.type !== "touchend" || e.type === "touchend" && e.changedTouches.length < 2 && !Device.android) {
            return;
          }
          zoom.fakeGestureTouched = false;
          zoom.fakeGestureMoved = false;
        }
        if (!gesture.$imageEl || gesture.$imageEl.length === 0) {
          return;
        }
        zoom.scale = Math.max(Math.min(zoom.scale, gesture.maxRatio), params.minRatio);
        gesture.$imageEl.transition(swiper2.params.speed).transform("translate3d(0,0,0) scale(" + zoom.scale + ")");
        zoom.currentScale = zoom.scale;
        zoom.isScaling = false;
        if (zoom.scale === 1) {
          gesture.$slideEl = void 0;
        }
      },
      onTouchStart: function onTouchStart2(e) {
        var swiper2 = this;
        var zoom = swiper2.zoom;
        var gesture = zoom.gesture;
        var image = zoom.image;
        if (!gesture.$imageEl || gesture.$imageEl.length === 0) {
          return;
        }
        if (image.isTouched) {
          return;
        }
        if (Device.android) {
          e.preventDefault();
        }
        image.isTouched = true;
        image.touchesStart.x = e.type === "touchstart" ? e.targetTouches[0].pageX : e.pageX;
        image.touchesStart.y = e.type === "touchstart" ? e.targetTouches[0].pageY : e.pageY;
      },
      onTouchMove: function onTouchMove2(e) {
        var swiper2 = this;
        var zoom = swiper2.zoom;
        var gesture = zoom.gesture;
        var image = zoom.image;
        var velocity = zoom.velocity;
        if (!gesture.$imageEl || gesture.$imageEl.length === 0) {
          return;
        }
        swiper2.allowClick = false;
        if (!image.isTouched || !gesture.$slideEl) {
          return;
        }
        if (!image.isMoved) {
          image.width = gesture.$imageEl[0].offsetWidth;
          image.height = gesture.$imageEl[0].offsetHeight;
          image.startX = Utils.getTranslate(gesture.$imageWrapEl[0], "x") || 0;
          image.startY = Utils.getTranslate(gesture.$imageWrapEl[0], "y") || 0;
          gesture.slideWidth = gesture.$slideEl[0].offsetWidth;
          gesture.slideHeight = gesture.$slideEl[0].offsetHeight;
          gesture.$imageWrapEl.transition(0);
          if (swiper2.rtl) {
            image.startX = -image.startX;
            image.startY = -image.startY;
          }
        }
        var scaledWidth = image.width * zoom.scale;
        var scaledHeight = image.height * zoom.scale;
        if (scaledWidth < gesture.slideWidth && scaledHeight < gesture.slideHeight) {
          return;
        }
        image.minX = Math.min(gesture.slideWidth / 2 - scaledWidth / 2, 0);
        image.maxX = -image.minX;
        image.minY = Math.min(gesture.slideHeight / 2 - scaledHeight / 2, 0);
        image.maxY = -image.minY;
        image.touchesCurrent.x = e.type === "touchmove" ? e.targetTouches[0].pageX : e.pageX;
        image.touchesCurrent.y = e.type === "touchmove" ? e.targetTouches[0].pageY : e.pageY;
        if (!image.isMoved && !zoom.isScaling) {
          if (swiper2.isHorizontal() && (Math.floor(image.minX) === Math.floor(image.startX) && image.touchesCurrent.x < image.touchesStart.x || Math.floor(image.maxX) === Math.floor(image.startX) && image.touchesCurrent.x > image.touchesStart.x)) {
            image.isTouched = false;
            return;
          }
          if (!swiper2.isHorizontal() && (Math.floor(image.minY) === Math.floor(image.startY) && image.touchesCurrent.y < image.touchesStart.y || Math.floor(image.maxY) === Math.floor(image.startY) && image.touchesCurrent.y > image.touchesStart.y)) {
            image.isTouched = false;
            return;
          }
        }
        e.preventDefault();
        e.stopPropagation();
        image.isMoved = true;
        image.currentX = image.touchesCurrent.x - image.touchesStart.x + image.startX;
        image.currentY = image.touchesCurrent.y - image.touchesStart.y + image.startY;
        if (image.currentX < image.minX) {
          image.currentX = image.minX + 1 - Math.pow(image.minX - image.currentX + 1, 0.8);
        }
        if (image.currentX > image.maxX) {
          image.currentX = image.maxX - 1 + Math.pow(image.currentX - image.maxX + 1, 0.8);
        }
        if (image.currentY < image.minY) {
          image.currentY = image.minY + 1 - Math.pow(image.minY - image.currentY + 1, 0.8);
        }
        if (image.currentY > image.maxY) {
          image.currentY = image.maxY - 1 + Math.pow(image.currentY - image.maxY + 1, 0.8);
        }
        if (!velocity.prevPositionX) {
          velocity.prevPositionX = image.touchesCurrent.x;
        }
        if (!velocity.prevPositionY) {
          velocity.prevPositionY = image.touchesCurrent.y;
        }
        if (!velocity.prevTime) {
          velocity.prevTime = Date.now();
        }
        velocity.x = (image.touchesCurrent.x - velocity.prevPositionX) / (Date.now() - velocity.prevTime) / 2;
        velocity.y = (image.touchesCurrent.y - velocity.prevPositionY) / (Date.now() - velocity.prevTime) / 2;
        if (Math.abs(image.touchesCurrent.x - velocity.prevPositionX) < 2) {
          velocity.x = 0;
        }
        if (Math.abs(image.touchesCurrent.y - velocity.prevPositionY) < 2) {
          velocity.y = 0;
        }
        velocity.prevPositionX = image.touchesCurrent.x;
        velocity.prevPositionY = image.touchesCurrent.y;
        velocity.prevTime = Date.now();
        gesture.$imageWrapEl.transform("translate3d(" + image.currentX + "px, " + image.currentY + "px,0)");
      },
      onTouchEnd: function onTouchEnd2() {
        var swiper2 = this;
        var zoom = swiper2.zoom;
        var gesture = zoom.gesture;
        var image = zoom.image;
        var velocity = zoom.velocity;
        if (!gesture.$imageEl || gesture.$imageEl.length === 0) {
          return;
        }
        if (!image.isTouched || !image.isMoved) {
          image.isTouched = false;
          image.isMoved = false;
          return;
        }
        image.isTouched = false;
        image.isMoved = false;
        var momentumDurationX = 300;
        var momentumDurationY = 300;
        var momentumDistanceX = velocity.x * momentumDurationX;
        var newPositionX = image.currentX + momentumDistanceX;
        var momentumDistanceY = velocity.y * momentumDurationY;
        var newPositionY = image.currentY + momentumDistanceY;
        if (velocity.x !== 0) {
          momentumDurationX = Math.abs((newPositionX - image.currentX) / velocity.x);
        }
        if (velocity.y !== 0) {
          momentumDurationY = Math.abs((newPositionY - image.currentY) / velocity.y);
        }
        var momentumDuration = Math.max(momentumDurationX, momentumDurationY);
        image.currentX = newPositionX;
        image.currentY = newPositionY;
        var scaledWidth = image.width * zoom.scale;
        var scaledHeight = image.height * zoom.scale;
        image.minX = Math.min(gesture.slideWidth / 2 - scaledWidth / 2, 0);
        image.maxX = -image.minX;
        image.minY = Math.min(gesture.slideHeight / 2 - scaledHeight / 2, 0);
        image.maxY = -image.minY;
        image.currentX = Math.max(Math.min(image.currentX, image.maxX), image.minX);
        image.currentY = Math.max(Math.min(image.currentY, image.maxY), image.minY);
        gesture.$imageWrapEl.transition(momentumDuration).transform("translate3d(" + image.currentX + "px, " + image.currentY + "px,0)");
      },
      onTransitionEnd: function onTransitionEnd() {
        var swiper2 = this;
        var zoom = swiper2.zoom;
        var gesture = zoom.gesture;
        if (gesture.$slideEl && swiper2.previousIndex !== swiper2.activeIndex) {
          gesture.$imageEl.transform("translate3d(0,0,0) scale(1)");
          gesture.$imageWrapEl.transform("translate3d(0,0,0)");
          zoom.scale = 1;
          zoom.currentScale = 1;
          gesture.$slideEl = void 0;
          gesture.$imageEl = void 0;
          gesture.$imageWrapEl = void 0;
        }
      },
      // Toggle Zoom
      toggle: function toggle(e) {
        var swiper2 = this;
        var zoom = swiper2.zoom;
        if (zoom.scale && zoom.scale !== 1) {
          zoom.out();
        } else {
          zoom.in(e);
        }
      },
      in: function in$1(e) {
        var swiper2 = this;
        var zoom = swiper2.zoom;
        var params = swiper2.params.zoom;
        var gesture = zoom.gesture;
        var image = zoom.image;
        if (!gesture.$slideEl) {
          gesture.$slideEl = swiper2.clickedSlide ? $(swiper2.clickedSlide) : swiper2.slides.eq(swiper2.activeIndex);
          gesture.$imageEl = gesture.$slideEl.find("img, svg, canvas");
          gesture.$imageWrapEl = gesture.$imageEl.parent("." + params.containerClass);
        }
        if (!gesture.$imageEl || gesture.$imageEl.length === 0) {
          return;
        }
        gesture.$slideEl.addClass("" + params.zoomedSlideClass);
        var touchX;
        var touchY;
        var offsetX;
        var offsetY;
        var diffX;
        var diffY;
        var translateX;
        var translateY;
        var imageWidth;
        var imageHeight;
        var scaledWidth;
        var scaledHeight;
        var translateMinX;
        var translateMinY;
        var translateMaxX;
        var translateMaxY;
        var slideWidth;
        var slideHeight;
        if (typeof image.touchesStart.x === "undefined" && e) {
          touchX = e.type === "touchend" ? e.changedTouches[0].pageX : e.pageX;
          touchY = e.type === "touchend" ? e.changedTouches[0].pageY : e.pageY;
        } else {
          touchX = image.touchesStart.x;
          touchY = image.touchesStart.y;
        }
        zoom.scale = gesture.$imageWrapEl.attr("data-swiper-zoom") || params.maxRatio;
        zoom.currentScale = gesture.$imageWrapEl.attr("data-swiper-zoom") || params.maxRatio;
        if (e) {
          slideWidth = gesture.$slideEl[0].offsetWidth;
          slideHeight = gesture.$slideEl[0].offsetHeight;
          offsetX = gesture.$slideEl.offset().left;
          offsetY = gesture.$slideEl.offset().top;
          diffX = offsetX + slideWidth / 2 - touchX;
          diffY = offsetY + slideHeight / 2 - touchY;
          imageWidth = gesture.$imageEl[0].offsetWidth;
          imageHeight = gesture.$imageEl[0].offsetHeight;
          scaledWidth = imageWidth * zoom.scale;
          scaledHeight = imageHeight * zoom.scale;
          translateMinX = Math.min(slideWidth / 2 - scaledWidth / 2, 0);
          translateMinY = Math.min(slideHeight / 2 - scaledHeight / 2, 0);
          translateMaxX = -translateMinX;
          translateMaxY = -translateMinY;
          translateX = diffX * zoom.scale;
          translateY = diffY * zoom.scale;
          if (translateX < translateMinX) {
            translateX = translateMinX;
          }
          if (translateX > translateMaxX) {
            translateX = translateMaxX;
          }
          if (translateY < translateMinY) {
            translateY = translateMinY;
          }
          if (translateY > translateMaxY) {
            translateY = translateMaxY;
          }
        } else {
          translateX = 0;
          translateY = 0;
        }
        gesture.$imageWrapEl.transition(300).transform("translate3d(" + translateX + "px, " + translateY + "px,0)");
        gesture.$imageEl.transition(300).transform("translate3d(0,0,0) scale(" + zoom.scale + ")");
      },
      out: function out() {
        var swiper2 = this;
        var zoom = swiper2.zoom;
        var params = swiper2.params.zoom;
        var gesture = zoom.gesture;
        if (!gesture.$slideEl) {
          gesture.$slideEl = swiper2.clickedSlide ? $(swiper2.clickedSlide) : swiper2.slides.eq(swiper2.activeIndex);
          gesture.$imageEl = gesture.$slideEl.find("img, svg, canvas");
          gesture.$imageWrapEl = gesture.$imageEl.parent("." + params.containerClass);
        }
        if (!gesture.$imageEl || gesture.$imageEl.length === 0) {
          return;
        }
        zoom.scale = 1;
        zoom.currentScale = 1;
        gesture.$imageWrapEl.transition(300).transform("translate3d(0,0,0)");
        gesture.$imageEl.transition(300).transform("translate3d(0,0,0) scale(1)");
        gesture.$slideEl.removeClass("" + params.zoomedSlideClass);
        gesture.$slideEl = void 0;
      },
      // Attach/Detach Events
      enable: function enable() {
        var swiper2 = this;
        var zoom = swiper2.zoom;
        if (zoom.enabled) {
          return;
        }
        zoom.enabled = true;
        var passiveListener = swiper2.touchEvents.start === "touchstart" && Support.passiveListener && swiper2.params.passiveListeners ? { passive: true, capture: false } : false;
        if (Support.gestures) {
          swiper2.$wrapperEl.on("gesturestart", ".swiper-slide", zoom.onGestureStart, passiveListener);
          swiper2.$wrapperEl.on("gesturechange", ".swiper-slide", zoom.onGestureChange, passiveListener);
          swiper2.$wrapperEl.on("gestureend", ".swiper-slide", zoom.onGestureEnd, passiveListener);
        } else if (swiper2.touchEvents.start === "touchstart") {
          swiper2.$wrapperEl.on(swiper2.touchEvents.start, ".swiper-slide", zoom.onGestureStart, passiveListener);
          swiper2.$wrapperEl.on(swiper2.touchEvents.move, ".swiper-slide", zoom.onGestureChange, passiveListener);
          swiper2.$wrapperEl.on(swiper2.touchEvents.end, ".swiper-slide", zoom.onGestureEnd, passiveListener);
        }
        swiper2.$wrapperEl.on(swiper2.touchEvents.move, "." + swiper2.params.zoom.containerClass, zoom.onTouchMove);
      },
      disable: function disable() {
        var swiper2 = this;
        var zoom = swiper2.zoom;
        if (!zoom.enabled) {
          return;
        }
        swiper2.zoom.enabled = false;
        var passiveListener = swiper2.touchEvents.start === "touchstart" && Support.passiveListener && swiper2.params.passiveListeners ? { passive: true, capture: false } : false;
        if (Support.gestures) {
          swiper2.$wrapperEl.off("gesturestart", ".swiper-slide", zoom.onGestureStart, passiveListener);
          swiper2.$wrapperEl.off("gesturechange", ".swiper-slide", zoom.onGestureChange, passiveListener);
          swiper2.$wrapperEl.off("gestureend", ".swiper-slide", zoom.onGestureEnd, passiveListener);
        } else if (swiper2.touchEvents.start === "touchstart") {
          swiper2.$wrapperEl.off(swiper2.touchEvents.start, ".swiper-slide", zoom.onGestureStart, passiveListener);
          swiper2.$wrapperEl.off(swiper2.touchEvents.move, ".swiper-slide", zoom.onGestureChange, passiveListener);
          swiper2.$wrapperEl.off(swiper2.touchEvents.end, ".swiper-slide", zoom.onGestureEnd, passiveListener);
        }
        swiper2.$wrapperEl.off(swiper2.touchEvents.move, "." + swiper2.params.zoom.containerClass, zoom.onTouchMove);
      }
    };
    var Zoom$1 = {
      name: "zoom",
      params: {
        zoom: {
          enabled: false,
          maxRatio: 3,
          minRatio: 1,
          toggle: true,
          containerClass: "swiper-zoom-container",
          zoomedSlideClass: "swiper-slide-zoomed"
        }
      },
      create: function create() {
        var swiper2 = this;
        var zoom = {
          enabled: false,
          scale: 1,
          currentScale: 1,
          isScaling: false,
          gesture: {
            $slideEl: void 0,
            slideWidth: void 0,
            slideHeight: void 0,
            $imageEl: void 0,
            $imageWrapEl: void 0,
            maxRatio: 3
          },
          image: {
            isTouched: void 0,
            isMoved: void 0,
            currentX: void 0,
            currentY: void 0,
            minX: void 0,
            minY: void 0,
            maxX: void 0,
            maxY: void 0,
            width: void 0,
            height: void 0,
            startX: void 0,
            startY: void 0,
            touchesStart: {},
            touchesCurrent: {}
          },
          velocity: {
            x: void 0,
            y: void 0,
            prevPositionX: void 0,
            prevPositionY: void 0,
            prevTime: void 0
          }
        };
        "onGestureStart onGestureChange onGestureEnd onTouchStart onTouchMove onTouchEnd onTransitionEnd toggle enable disable in out".split(" ").forEach(function(methodName) {
          zoom[methodName] = Zoom[methodName].bind(swiper2);
        });
        Utils.extend(swiper2, {
          zoom
        });
        var scale = 1;
        Object.defineProperty(swiper2.zoom, "scale", {
          get: function get2() {
            return scale;
          },
          set: function set(value) {
            if (scale !== value) {
              var imageEl = swiper2.zoom.gesture.$imageEl ? swiper2.zoom.gesture.$imageEl[0] : void 0;
              var slideEl = swiper2.zoom.gesture.$slideEl ? swiper2.zoom.gesture.$slideEl[0] : void 0;
              swiper2.emit("zoomChange", value, imageEl, slideEl);
            }
            scale = value;
          }
        });
      },
      on: {
        init: function init() {
          var swiper2 = this;
          if (swiper2.params.zoom.enabled) {
            swiper2.zoom.enable();
          }
        },
        destroy: function destroy() {
          var swiper2 = this;
          swiper2.zoom.disable();
        },
        touchStart: function touchStart(e) {
          var swiper2 = this;
          if (!swiper2.zoom.enabled) {
            return;
          }
          swiper2.zoom.onTouchStart(e);
        },
        touchEnd: function touchEnd(e) {
          var swiper2 = this;
          if (!swiper2.zoom.enabled) {
            return;
          }
          swiper2.zoom.onTouchEnd(e);
        },
        doubleTap: function doubleTap(e) {
          var swiper2 = this;
          if (swiper2.params.zoom.enabled && swiper2.zoom.enabled && swiper2.params.zoom.toggle) {
            swiper2.zoom.toggle(e);
          }
        },
        transitionEnd: function transitionEnd2() {
          var swiper2 = this;
          if (swiper2.zoom.enabled && swiper2.params.zoom.enabled) {
            swiper2.zoom.onTransitionEnd();
          }
        }
      }
    };
    var Lazy = {
      loadInSlide: function loadInSlide(index2, loadInDuplicate) {
        if (loadInDuplicate === void 0)
          loadInDuplicate = true;
        var swiper2 = this;
        var params = swiper2.params.lazy;
        if (typeof index2 === "undefined") {
          return;
        }
        if (swiper2.slides.length === 0) {
          return;
        }
        var isVirtual = swiper2.virtual && swiper2.params.virtual.enabled;
        var $slideEl = isVirtual ? swiper2.$wrapperEl.children("." + swiper2.params.slideClass + '[data-swiper-slide-index="' + index2 + '"]') : swiper2.slides.eq(index2);
        var $images = $slideEl.find("." + params.elementClass + ":not(." + params.loadedClass + "):not(." + params.loadingClass + ")");
        if ($slideEl.hasClass(params.elementClass) && !$slideEl.hasClass(params.loadedClass) && !$slideEl.hasClass(params.loadingClass)) {
          $images = $images.add($slideEl[0]);
        }
        if ($images.length === 0) {
          return;
        }
        $images.each(function(imageIndex, imageEl) {
          var $imageEl = $(imageEl);
          $imageEl.addClass(params.loadingClass);
          var background = $imageEl.attr("data-background");
          var src = $imageEl.attr("data-src");
          var srcset = $imageEl.attr("data-srcset");
          var sizes = $imageEl.attr("data-sizes");
          swiper2.loadImage($imageEl[0], src || background, srcset, sizes, false, function() {
            if (typeof swiper2 === "undefined" || swiper2 === null || !swiper2 || swiper2 && !swiper2.params || swiper2.destroyed) {
              return;
            }
            if (background) {
              $imageEl.css("background-image", 'url("' + background + '")');
              $imageEl.removeAttr("data-background");
            } else {
              if (srcset) {
                $imageEl.attr("srcset", srcset);
                $imageEl.removeAttr("data-srcset");
              }
              if (sizes) {
                $imageEl.attr("sizes", sizes);
                $imageEl.removeAttr("data-sizes");
              }
              if (src) {
                $imageEl.attr("src", src);
                $imageEl.removeAttr("data-src");
              }
            }
            $imageEl.addClass(params.loadedClass).removeClass(params.loadingClass);
            $slideEl.find("." + params.preloaderClass).remove();
            if (swiper2.params.loop && loadInDuplicate) {
              var slideOriginalIndex = $slideEl.attr("data-swiper-slide-index");
              if ($slideEl.hasClass(swiper2.params.slideDuplicateClass)) {
                var originalSlide = swiper2.$wrapperEl.children('[data-swiper-slide-index="' + slideOriginalIndex + '"]:not(.' + swiper2.params.slideDuplicateClass + ")");
                swiper2.lazy.loadInSlide(originalSlide.index(), false);
              } else {
                var duplicatedSlide = swiper2.$wrapperEl.children("." + swiper2.params.slideDuplicateClass + '[data-swiper-slide-index="' + slideOriginalIndex + '"]');
                swiper2.lazy.loadInSlide(duplicatedSlide.index(), false);
              }
            }
            swiper2.emit("lazyImageReady", $slideEl[0], $imageEl[0]);
          });
          swiper2.emit("lazyImageLoad", $slideEl[0], $imageEl[0]);
        });
      },
      load: function load() {
        var swiper2 = this;
        var $wrapperEl = swiper2.$wrapperEl;
        var swiperParams = swiper2.params;
        var slides = swiper2.slides;
        var activeIndex = swiper2.activeIndex;
        var isVirtual = swiper2.virtual && swiperParams.virtual.enabled;
        var params = swiperParams.lazy;
        var slidesPerView = swiperParams.slidesPerView;
        if (slidesPerView === "auto") {
          slidesPerView = 0;
        }
        function slideExist(index2) {
          if (isVirtual) {
            if ($wrapperEl.children("." + swiperParams.slideClass + '[data-swiper-slide-index="' + index2 + '"]').length) {
              return true;
            }
          } else if (slides[index2]) {
            return true;
          }
          return false;
        }
        function slideIndex(slideEl) {
          if (isVirtual) {
            return $(slideEl).attr("data-swiper-slide-index");
          }
          return $(slideEl).index();
        }
        if (!swiper2.lazy.initialImageLoaded) {
          swiper2.lazy.initialImageLoaded = true;
        }
        if (swiper2.params.watchSlidesVisibility) {
          $wrapperEl.children("." + swiperParams.slideVisibleClass).each(function(elIndex, slideEl) {
            var index2 = isVirtual ? $(slideEl).attr("data-swiper-slide-index") : $(slideEl).index();
            swiper2.lazy.loadInSlide(index2);
          });
        } else if (slidesPerView > 1) {
          for (var i = activeIndex; i < activeIndex + slidesPerView; i += 1) {
            if (slideExist(i)) {
              swiper2.lazy.loadInSlide(i);
            }
          }
        } else {
          swiper2.lazy.loadInSlide(activeIndex);
        }
        if (params.loadPrevNext) {
          if (slidesPerView > 1 || params.loadPrevNextAmount && params.loadPrevNextAmount > 1) {
            var amount = params.loadPrevNextAmount;
            var spv = slidesPerView;
            var maxIndex = Math.min(activeIndex + spv + Math.max(amount, spv), slides.length);
            var minIndex = Math.max(activeIndex - Math.max(spv, amount), 0);
            for (var i$1 = activeIndex + slidesPerView; i$1 < maxIndex; i$1 += 1) {
              if (slideExist(i$1)) {
                swiper2.lazy.loadInSlide(i$1);
              }
            }
            for (var i$2 = minIndex; i$2 < activeIndex; i$2 += 1) {
              if (slideExist(i$2)) {
                swiper2.lazy.loadInSlide(i$2);
              }
            }
          } else {
            var nextSlide = $wrapperEl.children("." + swiperParams.slideNextClass);
            if (nextSlide.length > 0) {
              swiper2.lazy.loadInSlide(slideIndex(nextSlide));
            }
            var prevSlide = $wrapperEl.children("." + swiperParams.slidePrevClass);
            if (prevSlide.length > 0) {
              swiper2.lazy.loadInSlide(slideIndex(prevSlide));
            }
          }
        }
      }
    };
    var Lazy$1 = {
      name: "lazy",
      params: {
        lazy: {
          enabled: false,
          loadPrevNext: false,
          loadPrevNextAmount: 1,
          loadOnTransitionStart: false,
          elementClass: "swiper-lazy",
          loadingClass: "swiper-lazy-loading",
          loadedClass: "swiper-lazy-loaded",
          preloaderClass: "swiper-lazy-preloader"
        }
      },
      create: function create() {
        var swiper2 = this;
        Utils.extend(swiper2, {
          lazy: {
            initialImageLoaded: false,
            load: Lazy.load.bind(swiper2),
            loadInSlide: Lazy.loadInSlide.bind(swiper2)
          }
        });
      },
      on: {
        beforeInit: function beforeInit() {
          var swiper2 = this;
          if (swiper2.params.lazy.enabled && swiper2.params.preloadImages) {
            swiper2.params.preloadImages = false;
          }
        },
        init: function init() {
          var swiper2 = this;
          if (swiper2.params.lazy.enabled && !swiper2.params.loop && swiper2.params.initialSlide === 0) {
            swiper2.lazy.load();
          }
        },
        scroll: function scroll() {
          var swiper2 = this;
          if (swiper2.params.freeMode && !swiper2.params.freeModeSticky) {
            swiper2.lazy.load();
          }
        },
        resize: function resize() {
          var swiper2 = this;
          if (swiper2.params.lazy.enabled) {
            swiper2.lazy.load();
          }
        },
        scrollbarDragMove: function scrollbarDragMove() {
          var swiper2 = this;
          if (swiper2.params.lazy.enabled) {
            swiper2.lazy.load();
          }
        },
        transitionStart: function transitionStart2() {
          var swiper2 = this;
          if (swiper2.params.lazy.enabled) {
            if (swiper2.params.lazy.loadOnTransitionStart || !swiper2.params.lazy.loadOnTransitionStart && !swiper2.lazy.initialImageLoaded) {
              swiper2.lazy.load();
            }
          }
        },
        transitionEnd: function transitionEnd2() {
          var swiper2 = this;
          if (swiper2.params.lazy.enabled && !swiper2.params.lazy.loadOnTransitionStart) {
            swiper2.lazy.load();
          }
        }
      }
    };
    var Controller = {
      LinearSpline: function LinearSpline(x, y) {
        var binarySearch = function search() {
          var maxIndex;
          var minIndex;
          var guess;
          return function(array, val) {
            minIndex = -1;
            maxIndex = array.length;
            while (maxIndex - minIndex > 1) {
              guess = maxIndex + minIndex >> 1;
              if (array[guess] <= val) {
                minIndex = guess;
              } else {
                maxIndex = guess;
              }
            }
            return maxIndex;
          };
        }();
        this.x = x;
        this.y = y;
        this.lastIndex = x.length - 1;
        var i1;
        var i3;
        this.interpolate = function interpolate(x2) {
          if (!x2) {
            return 0;
          }
          i3 = binarySearch(this.x, x2);
          i1 = i3 - 1;
          return (x2 - this.x[i1]) * (this.y[i3] - this.y[i1]) / (this.x[i3] - this.x[i1]) + this.y[i1];
        };
        return this;
      },
      // xxx: for now i will just save one spline function to to
      getInterpolateFunction: function getInterpolateFunction(c) {
        var swiper2 = this;
        if (!swiper2.controller.spline) {
          swiper2.controller.spline = swiper2.params.loop ? new Controller.LinearSpline(swiper2.slidesGrid, c.slidesGrid) : new Controller.LinearSpline(swiper2.snapGrid, c.snapGrid);
        }
      },
      setTranslate: function setTranslate2(setTranslate$1, byController) {
        var swiper2 = this;
        var controlled = swiper2.controller.control;
        var multiplier;
        var controlledTranslate;
        function setControlledTranslate(c) {
          var translate2 = swiper2.rtlTranslate ? -swiper2.translate : swiper2.translate;
          if (swiper2.params.controller.by === "slide") {
            swiper2.controller.getInterpolateFunction(c);
            controlledTranslate = -swiper2.controller.spline.interpolate(-translate2);
          }
          if (!controlledTranslate || swiper2.params.controller.by === "container") {
            multiplier = (c.maxTranslate() - c.minTranslate()) / (swiper2.maxTranslate() - swiper2.minTranslate());
            controlledTranslate = (translate2 - swiper2.minTranslate()) * multiplier + c.minTranslate();
          }
          if (swiper2.params.controller.inverse) {
            controlledTranslate = c.maxTranslate() - controlledTranslate;
          }
          c.updateProgress(controlledTranslate);
          c.setTranslate(controlledTranslate, swiper2);
          c.updateActiveIndex();
          c.updateSlidesClasses();
        }
        if (Array.isArray(controlled)) {
          for (var i = 0; i < controlled.length; i += 1) {
            if (controlled[i] !== byController && controlled[i] instanceof Swiper) {
              setControlledTranslate(controlled[i]);
            }
          }
        } else if (controlled instanceof Swiper && byController !== controlled) {
          setControlledTranslate(controlled);
        }
      },
      setTransition: function setTransition2(duration, byController) {
        var swiper2 = this;
        var controlled = swiper2.controller.control;
        var i;
        function setControlledTransition(c) {
          c.setTransition(duration, swiper2);
          if (duration !== 0) {
            c.transitionStart();
            if (c.params.autoHeight) {
              Utils.nextTick(function() {
                c.updateAutoHeight();
              });
            }
            c.$wrapperEl.transitionEnd(function() {
              if (!controlled) {
                return;
              }
              if (c.params.loop && swiper2.params.controller.by === "slide") {
                c.loopFix();
              }
              c.transitionEnd();
            });
          }
        }
        if (Array.isArray(controlled)) {
          for (i = 0; i < controlled.length; i += 1) {
            if (controlled[i] !== byController && controlled[i] instanceof Swiper) {
              setControlledTransition(controlled[i]);
            }
          }
        } else if (controlled instanceof Swiper && byController !== controlled) {
          setControlledTransition(controlled);
        }
      }
    };
    var Controller$1 = {
      name: "controller",
      params: {
        controller: {
          control: void 0,
          inverse: false,
          by: "slide"
          // or 'container'
        }
      },
      create: function create() {
        var swiper2 = this;
        Utils.extend(swiper2, {
          controller: {
            control: swiper2.params.controller.control,
            getInterpolateFunction: Controller.getInterpolateFunction.bind(swiper2),
            setTranslate: Controller.setTranslate.bind(swiper2),
            setTransition: Controller.setTransition.bind(swiper2)
          }
        });
      },
      on: {
        update: function update2() {
          var swiper2 = this;
          if (!swiper2.controller.control) {
            return;
          }
          if (swiper2.controller.spline) {
            swiper2.controller.spline = void 0;
            delete swiper2.controller.spline;
          }
        },
        resize: function resize() {
          var swiper2 = this;
          if (!swiper2.controller.control) {
            return;
          }
          if (swiper2.controller.spline) {
            swiper2.controller.spline = void 0;
            delete swiper2.controller.spline;
          }
        },
        observerUpdate: function observerUpdate() {
          var swiper2 = this;
          if (!swiper2.controller.control) {
            return;
          }
          if (swiper2.controller.spline) {
            swiper2.controller.spline = void 0;
            delete swiper2.controller.spline;
          }
        },
        setTranslate: function setTranslate2(translate2, byController) {
          var swiper2 = this;
          if (!swiper2.controller.control) {
            return;
          }
          swiper2.controller.setTranslate(translate2, byController);
        },
        setTransition: function setTransition2(duration, byController) {
          var swiper2 = this;
          if (!swiper2.controller.control) {
            return;
          }
          swiper2.controller.setTransition(duration, byController);
        }
      }
    };
    var a11y = {
      makeElFocusable: function makeElFocusable($el) {
        $el.attr("tabIndex", "0");
        return $el;
      },
      addElRole: function addElRole($el, role) {
        $el.attr("role", role);
        return $el;
      },
      addElLabel: function addElLabel($el, label) {
        $el.attr("aria-label", label);
        return $el;
      },
      disableEl: function disableEl($el) {
        $el.attr("aria-disabled", true);
        return $el;
      },
      enableEl: function enableEl($el) {
        $el.attr("aria-disabled", false);
        return $el;
      },
      onEnterKey: function onEnterKey(e) {
        var swiper2 = this;
        var params = swiper2.params.a11y;
        if (e.keyCode !== 13) {
          return;
        }
        var $targetEl = $(e.target);
        if (swiper2.navigation && swiper2.navigation.$nextEl && $targetEl.is(swiper2.navigation.$nextEl)) {
          if (!(swiper2.isEnd && !swiper2.params.loop)) {
            swiper2.slideNext();
          }
          if (swiper2.isEnd) {
            swiper2.a11y.notify(params.lastSlideMessage);
          } else {
            swiper2.a11y.notify(params.nextSlideMessage);
          }
        }
        if (swiper2.navigation && swiper2.navigation.$prevEl && $targetEl.is(swiper2.navigation.$prevEl)) {
          if (!(swiper2.isBeginning && !swiper2.params.loop)) {
            swiper2.slidePrev();
          }
          if (swiper2.isBeginning) {
            swiper2.a11y.notify(params.firstSlideMessage);
          } else {
            swiper2.a11y.notify(params.prevSlideMessage);
          }
        }
        if (swiper2.pagination && $targetEl.is("." + swiper2.params.pagination.bulletClass)) {
          $targetEl[0].click();
        }
      },
      notify: function notify(message) {
        var swiper2 = this;
        var notification = swiper2.a11y.liveRegion;
        if (notification.length === 0) {
          return;
        }
        notification.html("");
        notification.html(message);
      },
      updateNavigation: function updateNavigation() {
        var swiper2 = this;
        if (swiper2.params.loop) {
          return;
        }
        var ref = swiper2.navigation;
        var $nextEl = ref.$nextEl;
        var $prevEl = ref.$prevEl;
        if ($prevEl && $prevEl.length > 0) {
          if (swiper2.isBeginning) {
            swiper2.a11y.disableEl($prevEl);
          } else {
            swiper2.a11y.enableEl($prevEl);
          }
        }
        if ($nextEl && $nextEl.length > 0) {
          if (swiper2.isEnd) {
            swiper2.a11y.disableEl($nextEl);
          } else {
            swiper2.a11y.enableEl($nextEl);
          }
        }
      },
      updatePagination: function updatePagination() {
        var swiper2 = this;
        var params = swiper2.params.a11y;
        if (swiper2.pagination && swiper2.params.pagination.clickable && swiper2.pagination.bullets && swiper2.pagination.bullets.length) {
          swiper2.pagination.bullets.each(function(bulletIndex, bulletEl) {
            var $bulletEl = $(bulletEl);
            swiper2.a11y.makeElFocusable($bulletEl);
            swiper2.a11y.addElRole($bulletEl, "button");
            swiper2.a11y.addElLabel($bulletEl, params.paginationBulletMessage.replace(/{{index}}/, $bulletEl.index() + 1));
          });
        }
      },
      init: function init() {
        var swiper2 = this;
        swiper2.$el.append(swiper2.a11y.liveRegion);
        var params = swiper2.params.a11y;
        var $nextEl;
        var $prevEl;
        if (swiper2.navigation && swiper2.navigation.$nextEl) {
          $nextEl = swiper2.navigation.$nextEl;
        }
        if (swiper2.navigation && swiper2.navigation.$prevEl) {
          $prevEl = swiper2.navigation.$prevEl;
        }
        if ($nextEl) {
          swiper2.a11y.makeElFocusable($nextEl);
          swiper2.a11y.addElRole($nextEl, "button");
          swiper2.a11y.addElLabel($nextEl, params.nextSlideMessage);
          $nextEl.on("keydown", swiper2.a11y.onEnterKey);
        }
        if ($prevEl) {
          swiper2.a11y.makeElFocusable($prevEl);
          swiper2.a11y.addElRole($prevEl, "button");
          swiper2.a11y.addElLabel($prevEl, params.prevSlideMessage);
          $prevEl.on("keydown", swiper2.a11y.onEnterKey);
        }
        if (swiper2.pagination && swiper2.params.pagination.clickable && swiper2.pagination.bullets && swiper2.pagination.bullets.length) {
          swiper2.pagination.$el.on("keydown", "." + swiper2.params.pagination.bulletClass, swiper2.a11y.onEnterKey);
        }
      },
      destroy: function destroy() {
        var swiper2 = this;
        if (swiper2.a11y.liveRegion && swiper2.a11y.liveRegion.length > 0) {
          swiper2.a11y.liveRegion.remove();
        }
        var $nextEl;
        var $prevEl;
        if (swiper2.navigation && swiper2.navigation.$nextEl) {
          $nextEl = swiper2.navigation.$nextEl;
        }
        if (swiper2.navigation && swiper2.navigation.$prevEl) {
          $prevEl = swiper2.navigation.$prevEl;
        }
        if ($nextEl) {
          $nextEl.off("keydown", swiper2.a11y.onEnterKey);
        }
        if ($prevEl) {
          $prevEl.off("keydown", swiper2.a11y.onEnterKey);
        }
        if (swiper2.pagination && swiper2.params.pagination.clickable && swiper2.pagination.bullets && swiper2.pagination.bullets.length) {
          swiper2.pagination.$el.off("keydown", "." + swiper2.params.pagination.bulletClass, swiper2.a11y.onEnterKey);
        }
      }
    };
    var A11y = {
      name: "a11y",
      params: {
        a11y: {
          enabled: true,
          notificationClass: "swiper-notification",
          prevSlideMessage: "Previous slide",
          nextSlideMessage: "Next slide",
          firstSlideMessage: "This is the first slide",
          lastSlideMessage: "This is the last slide",
          paginationBulletMessage: "Go to slide {{index}}"
        }
      },
      create: function create() {
        var swiper2 = this;
        Utils.extend(swiper2, {
          a11y: {
            liveRegion: $('<span class="' + swiper2.params.a11y.notificationClass + '" aria-live="assertive" aria-atomic="true"></span>')
          }
        });
        Object.keys(a11y).forEach(function(methodName) {
          swiper2.a11y[methodName] = a11y[methodName].bind(swiper2);
        });
      },
      on: {
        init: function init() {
          var swiper2 = this;
          if (!swiper2.params.a11y.enabled) {
            return;
          }
          swiper2.a11y.init();
          swiper2.a11y.updateNavigation();
        },
        toEdge: function toEdge() {
          var swiper2 = this;
          if (!swiper2.params.a11y.enabled) {
            return;
          }
          swiper2.a11y.updateNavigation();
        },
        fromEdge: function fromEdge() {
          var swiper2 = this;
          if (!swiper2.params.a11y.enabled) {
            return;
          }
          swiper2.a11y.updateNavigation();
        },
        paginationUpdate: function paginationUpdate() {
          var swiper2 = this;
          if (!swiper2.params.a11y.enabled) {
            return;
          }
          swiper2.a11y.updatePagination();
        },
        destroy: function destroy() {
          var swiper2 = this;
          if (!swiper2.params.a11y.enabled) {
            return;
          }
          swiper2.a11y.destroy();
        }
      }
    };
    var History = {
      init: function init() {
        var swiper2 = this;
        if (!swiper2.params.history) {
          return;
        }
        if (!win.history || !win.history.pushState) {
          swiper2.params.history.enabled = false;
          swiper2.params.hashNavigation.enabled = true;
          return;
        }
        var history = swiper2.history;
        history.initialized = true;
        history.paths = History.getPathValues();
        if (!history.paths.key && !history.paths.value) {
          return;
        }
        history.scrollToSlide(0, history.paths.value, swiper2.params.runCallbacksOnInit);
        if (!swiper2.params.history.replaceState) {
          win.addEventListener("popstate", swiper2.history.setHistoryPopState);
        }
      },
      destroy: function destroy() {
        var swiper2 = this;
        if (!swiper2.params.history.replaceState) {
          win.removeEventListener("popstate", swiper2.history.setHistoryPopState);
        }
      },
      setHistoryPopState: function setHistoryPopState() {
        var swiper2 = this;
        swiper2.history.paths = History.getPathValues();
        swiper2.history.scrollToSlide(swiper2.params.speed, swiper2.history.paths.value, false);
      },
      getPathValues: function getPathValues() {
        var pathArray = win.location.pathname.slice(1).split("/").filter(function(part) {
          return part !== "";
        });
        var total = pathArray.length;
        var key = pathArray[total - 2];
        var value = pathArray[total - 1];
        return { key, value };
      },
      setHistory: function setHistory(key, index2) {
        var swiper2 = this;
        if (!swiper2.history.initialized || !swiper2.params.history.enabled) {
          return;
        }
        var slide2 = swiper2.slides.eq(index2);
        var value = History.slugify(slide2.attr("data-history"));
        if (!win.location.pathname.includes(key)) {
          value = key + "/" + value;
        }
        var currentState = win.history.state;
        if (currentState && currentState.value === value) {
          return;
        }
        if (swiper2.params.history.replaceState) {
          win.history.replaceState({ value }, null, value);
        } else {
          win.history.pushState({ value }, null, value);
        }
      },
      slugify: function slugify(text2) {
        return text2.toString().replace(/\s+/g, "-").replace(/[^\w-]+/g, "").replace(/--+/g, "-").replace(/^-+/, "").replace(/-+$/, "");
      },
      scrollToSlide: function scrollToSlide(speed, value, runCallbacks) {
        var swiper2 = this;
        if (value) {
          for (var i = 0, length = swiper2.slides.length; i < length; i += 1) {
            var slide2 = swiper2.slides.eq(i);
            var slideHistory = History.slugify(slide2.attr("data-history"));
            if (slideHistory === value && !slide2.hasClass(swiper2.params.slideDuplicateClass)) {
              var index2 = slide2.index();
              swiper2.slideTo(index2, speed, runCallbacks);
            }
          }
        } else {
          swiper2.slideTo(0, speed, runCallbacks);
        }
      }
    };
    var History$1 = {
      name: "history",
      params: {
        history: {
          enabled: false,
          replaceState: false,
          key: "slides"
        }
      },
      create: function create() {
        var swiper2 = this;
        Utils.extend(swiper2, {
          history: {
            init: History.init.bind(swiper2),
            setHistory: History.setHistory.bind(swiper2),
            setHistoryPopState: History.setHistoryPopState.bind(swiper2),
            scrollToSlide: History.scrollToSlide.bind(swiper2),
            destroy: History.destroy.bind(swiper2)
          }
        });
      },
      on: {
        init: function init() {
          var swiper2 = this;
          if (swiper2.params.history.enabled) {
            swiper2.history.init();
          }
        },
        destroy: function destroy() {
          var swiper2 = this;
          if (swiper2.params.history.enabled) {
            swiper2.history.destroy();
          }
        },
        transitionEnd: function transitionEnd2() {
          var swiper2 = this;
          if (swiper2.history.initialized) {
            swiper2.history.setHistory(swiper2.params.history.key, swiper2.activeIndex);
          }
        }
      }
    };
    var HashNavigation = {
      onHashCange: function onHashCange() {
        var swiper2 = this;
        var newHash = doc.location.hash.replace("#", "");
        var activeSlideHash = swiper2.slides.eq(swiper2.activeIndex).attr("data-hash");
        if (newHash !== activeSlideHash) {
          var newIndex = swiper2.$wrapperEl.children("." + swiper2.params.slideClass + '[data-hash="' + newHash + '"]').index();
          if (typeof newIndex === "undefined") {
            return;
          }
          swiper2.slideTo(newIndex);
        }
      },
      setHash: function setHash() {
        var swiper2 = this;
        if (!swiper2.hashNavigation.initialized || !swiper2.params.hashNavigation.enabled) {
          return;
        }
        if (swiper2.params.hashNavigation.replaceState && win.history && win.history.replaceState) {
          win.history.replaceState(null, null, "#" + swiper2.slides.eq(swiper2.activeIndex).attr("data-hash") || "");
        } else {
          var slide2 = swiper2.slides.eq(swiper2.activeIndex);
          var hash = slide2.attr("data-hash") || slide2.attr("data-history");
          doc.location.hash = hash || "";
        }
      },
      init: function init() {
        var swiper2 = this;
        if (!swiper2.params.hashNavigation.enabled || swiper2.params.history && swiper2.params.history.enabled) {
          return;
        }
        swiper2.hashNavigation.initialized = true;
        var hash = doc.location.hash.replace("#", "");
        if (hash) {
          var speed = 0;
          for (var i = 0, length = swiper2.slides.length; i < length; i += 1) {
            var slide2 = swiper2.slides.eq(i);
            var slideHash = slide2.attr("data-hash") || slide2.attr("data-history");
            if (slideHash === hash && !slide2.hasClass(swiper2.params.slideDuplicateClass)) {
              var index2 = slide2.index();
              swiper2.slideTo(index2, speed, swiper2.params.runCallbacksOnInit, true);
            }
          }
        }
        if (swiper2.params.hashNavigation.watchState) {
          $(win).on("hashchange", swiper2.hashNavigation.onHashCange);
        }
      },
      destroy: function destroy() {
        var swiper2 = this;
        if (swiper2.params.hashNavigation.watchState) {
          $(win).off("hashchange", swiper2.hashNavigation.onHashCange);
        }
      }
    };
    var HashNavigation$1 = {
      name: "hash-navigation",
      params: {
        hashNavigation: {
          enabled: false,
          replaceState: false,
          watchState: false
        }
      },
      create: function create() {
        var swiper2 = this;
        Utils.extend(swiper2, {
          hashNavigation: {
            initialized: false,
            init: HashNavigation.init.bind(swiper2),
            destroy: HashNavigation.destroy.bind(swiper2),
            setHash: HashNavigation.setHash.bind(swiper2),
            onHashCange: HashNavigation.onHashCange.bind(swiper2)
          }
        });
      },
      on: {
        init: function init() {
          var swiper2 = this;
          if (swiper2.params.hashNavigation.enabled) {
            swiper2.hashNavigation.init();
          }
        },
        destroy: function destroy() {
          var swiper2 = this;
          if (swiper2.params.hashNavigation.enabled) {
            swiper2.hashNavigation.destroy();
          }
        },
        transitionEnd: function transitionEnd2() {
          var swiper2 = this;
          if (swiper2.hashNavigation.initialized) {
            swiper2.hashNavigation.setHash();
          }
        }
      }
    };
    var Autoplay = {
      run: function run() {
        var swiper2 = this;
        var $activeSlideEl = swiper2.slides.eq(swiper2.activeIndex);
        var delay = swiper2.params.autoplay.delay;
        if ($activeSlideEl.attr("data-swiper-autoplay")) {
          delay = $activeSlideEl.attr("data-swiper-autoplay") || swiper2.params.autoplay.delay;
        }
        clearTimeout(swiper2.autoplay.timeout);
        swiper2.autoplay.timeout = Utils.nextTick(function() {
          if (swiper2.params.autoplay.reverseDirection) {
            if (swiper2.params.loop) {
              swiper2.loopFix();
              swiper2.slidePrev(swiper2.params.speed, true, true);
              swiper2.emit("autoplay");
            } else if (!swiper2.isBeginning) {
              swiper2.slidePrev(swiper2.params.speed, true, true);
              swiper2.emit("autoplay");
            } else if (!swiper2.params.autoplay.stopOnLastSlide) {
              swiper2.slideTo(swiper2.slides.length - 1, swiper2.params.speed, true, true);
              swiper2.emit("autoplay");
            } else {
              swiper2.autoplay.stop();
            }
          } else if (swiper2.params.loop) {
            swiper2.loopFix();
            swiper2.slideNext(swiper2.params.speed, true, true);
            swiper2.emit("autoplay");
          } else if (!swiper2.isEnd) {
            swiper2.slideNext(swiper2.params.speed, true, true);
            swiper2.emit("autoplay");
          } else if (!swiper2.params.autoplay.stopOnLastSlide) {
            swiper2.slideTo(0, swiper2.params.speed, true, true);
            swiper2.emit("autoplay");
          } else {
            swiper2.autoplay.stop();
          }
        }, delay);
      },
      start: function start() {
        var swiper2 = this;
        if (typeof swiper2.autoplay.timeout !== "undefined") {
          return false;
        }
        if (swiper2.autoplay.running) {
          return false;
        }
        swiper2.autoplay.running = true;
        swiper2.emit("autoplayStart");
        swiper2.autoplay.run();
        return true;
      },
      stop: function stop() {
        var swiper2 = this;
        if (!swiper2.autoplay.running) {
          return false;
        }
        if (typeof swiper2.autoplay.timeout === "undefined") {
          return false;
        }
        if (swiper2.autoplay.timeout) {
          clearTimeout(swiper2.autoplay.timeout);
          swiper2.autoplay.timeout = void 0;
        }
        swiper2.autoplay.running = false;
        swiper2.emit("autoplayStop");
        return true;
      },
      pause: function pause(speed) {
        var swiper2 = this;
        if (!swiper2.autoplay.running) {
          return;
        }
        if (swiper2.autoplay.paused) {
          return;
        }
        if (swiper2.autoplay.timeout) {
          clearTimeout(swiper2.autoplay.timeout);
        }
        swiper2.autoplay.paused = true;
        if (speed === 0 || !swiper2.params.autoplay.waitForTransition) {
          swiper2.autoplay.paused = false;
          swiper2.autoplay.run();
        } else {
          swiper2.$wrapperEl[0].addEventListener("transitionend", swiper2.autoplay.onTransitionEnd);
          swiper2.$wrapperEl[0].addEventListener("webkitTransitionEnd", swiper2.autoplay.onTransitionEnd);
        }
      }
    };
    var Autoplay$1 = {
      name: "autoplay",
      params: {
        autoplay: {
          enabled: false,
          delay: 3e3,
          waitForTransition: true,
          disableOnInteraction: true,
          stopOnLastSlide: false,
          reverseDirection: false
        }
      },
      create: function create() {
        var swiper2 = this;
        Utils.extend(swiper2, {
          autoplay: {
            running: false,
            paused: false,
            run: Autoplay.run.bind(swiper2),
            start: Autoplay.start.bind(swiper2),
            stop: Autoplay.stop.bind(swiper2),
            pause: Autoplay.pause.bind(swiper2),
            onTransitionEnd: function onTransitionEnd(e) {
              if (!swiper2 || swiper2.destroyed || !swiper2.$wrapperEl) {
                return;
              }
              if (e.target !== this) {
                return;
              }
              swiper2.$wrapperEl[0].removeEventListener("transitionend", swiper2.autoplay.onTransitionEnd);
              swiper2.$wrapperEl[0].removeEventListener("webkitTransitionEnd", swiper2.autoplay.onTransitionEnd);
              swiper2.autoplay.paused = false;
              if (!swiper2.autoplay.running) {
                swiper2.autoplay.stop();
              } else {
                swiper2.autoplay.run();
              }
            }
          }
        });
      },
      on: {
        init: function init() {
          var swiper2 = this;
          if (swiper2.params.autoplay.enabled) {
            swiper2.autoplay.start();
          }
        },
        beforeTransitionStart: function beforeTransitionStart(speed, internal) {
          var swiper2 = this;
          if (swiper2.autoplay.running) {
            if (internal || !swiper2.params.autoplay.disableOnInteraction) {
              swiper2.autoplay.pause(speed);
            } else {
              swiper2.autoplay.stop();
            }
          }
        },
        sliderFirstMove: function sliderFirstMove() {
          var swiper2 = this;
          if (swiper2.autoplay.running) {
            if (swiper2.params.autoplay.disableOnInteraction) {
              swiper2.autoplay.stop();
            } else {
              swiper2.autoplay.pause();
            }
          }
        },
        destroy: function destroy() {
          var swiper2 = this;
          if (swiper2.autoplay.running) {
            swiper2.autoplay.stop();
          }
        }
      }
    };
    var Fade = {
      setTranslate: function setTranslate2() {
        var swiper2 = this;
        var slides = swiper2.slides;
        for (var i = 0; i < slides.length; i += 1) {
          var $slideEl = swiper2.slides.eq(i);
          var offset2 = $slideEl[0].swiperSlideOffset;
          var tx = -offset2;
          if (!swiper2.params.virtualTranslate) {
            tx -= swiper2.translate;
          }
          var ty = 0;
          if (!swiper2.isHorizontal()) {
            ty = tx;
            tx = 0;
          }
          var slideOpacity = swiper2.params.fadeEffect.crossFade ? Math.max(1 - Math.abs($slideEl[0].progress), 0) : 1 + Math.min(Math.max($slideEl[0].progress, -1), 0);
          $slideEl.css({
            opacity: slideOpacity
          }).transform("translate3d(" + tx + "px, " + ty + "px, 0px)");
        }
      },
      setTransition: function setTransition2(duration) {
        var swiper2 = this;
        var slides = swiper2.slides;
        var $wrapperEl = swiper2.$wrapperEl;
        slides.transition(duration);
        if (swiper2.params.virtualTranslate && duration !== 0) {
          var eventTriggered = false;
          slides.transitionEnd(function() {
            if (eventTriggered) {
              return;
            }
            if (!swiper2 || swiper2.destroyed) {
              return;
            }
            eventTriggered = true;
            swiper2.animating = false;
            var triggerEvents = ["webkitTransitionEnd", "transitionend"];
            for (var i = 0; i < triggerEvents.length; i += 1) {
              $wrapperEl.trigger(triggerEvents[i]);
            }
          });
        }
      }
    };
    var EffectFade = {
      name: "effect-fade",
      params: {
        fadeEffect: {
          crossFade: false
        }
      },
      create: function create() {
        var swiper2 = this;
        Utils.extend(swiper2, {
          fadeEffect: {
            setTranslate: Fade.setTranslate.bind(swiper2),
            setTransition: Fade.setTransition.bind(swiper2)
          }
        });
      },
      on: {
        beforeInit: function beforeInit() {
          var swiper2 = this;
          if (swiper2.params.effect !== "fade") {
            return;
          }
          swiper2.classNames.push(swiper2.params.containerModifierClass + "fade");
          var overwriteParams = {
            slidesPerView: 1,
            slidesPerColumn: 1,
            slidesPerGroup: 1,
            watchSlidesProgress: true,
            spaceBetween: 0,
            virtualTranslate: true
          };
          Utils.extend(swiper2.params, overwriteParams);
          Utils.extend(swiper2.originalParams, overwriteParams);
        },
        setTranslate: function setTranslate2() {
          var swiper2 = this;
          if (swiper2.params.effect !== "fade") {
            return;
          }
          swiper2.fadeEffect.setTranslate();
        },
        setTransition: function setTransition2(duration) {
          var swiper2 = this;
          if (swiper2.params.effect !== "fade") {
            return;
          }
          swiper2.fadeEffect.setTransition(duration);
        }
      }
    };
    var Cube = {
      setTranslate: function setTranslate2() {
        var swiper2 = this;
        var $el = swiper2.$el;
        var $wrapperEl = swiper2.$wrapperEl;
        var slides = swiper2.slides;
        var swiperWidth = swiper2.width;
        var swiperHeight = swiper2.height;
        var rtl = swiper2.rtlTranslate;
        var swiperSize = swiper2.size;
        var params = swiper2.params.cubeEffect;
        var isHorizontal = swiper2.isHorizontal();
        var isVirtual = swiper2.virtual && swiper2.params.virtual.enabled;
        var wrapperRotate = 0;
        var $cubeShadowEl;
        if (params.shadow) {
          if (isHorizontal) {
            $cubeShadowEl = $wrapperEl.find(".swiper-cube-shadow");
            if ($cubeShadowEl.length === 0) {
              $cubeShadowEl = $('<div class="swiper-cube-shadow"></div>');
              $wrapperEl.append($cubeShadowEl);
            }
            $cubeShadowEl.css({ height: swiperWidth + "px" });
          } else {
            $cubeShadowEl = $el.find(".swiper-cube-shadow");
            if ($cubeShadowEl.length === 0) {
              $cubeShadowEl = $('<div class="swiper-cube-shadow"></div>');
              $el.append($cubeShadowEl);
            }
          }
        }
        for (var i = 0; i < slides.length; i += 1) {
          var $slideEl = slides.eq(i);
          var slideIndex = i;
          if (isVirtual) {
            slideIndex = parseInt($slideEl.attr("data-swiper-slide-index"), 10);
          }
          var slideAngle = slideIndex * 90;
          var round = Math.floor(slideAngle / 360);
          if (rtl) {
            slideAngle = -slideAngle;
            round = Math.floor(-slideAngle / 360);
          }
          var progress = Math.max(Math.min($slideEl[0].progress, 1), -1);
          var tx = 0;
          var ty = 0;
          var tz = 0;
          if (slideIndex % 4 === 0) {
            tx = -round * 4 * swiperSize;
            tz = 0;
          } else if ((slideIndex - 1) % 4 === 0) {
            tx = 0;
            tz = -round * 4 * swiperSize;
          } else if ((slideIndex - 2) % 4 === 0) {
            tx = swiperSize + round * 4 * swiperSize;
            tz = swiperSize;
          } else if ((slideIndex - 3) % 4 === 0) {
            tx = -swiperSize;
            tz = 3 * swiperSize + swiperSize * 4 * round;
          }
          if (rtl) {
            tx = -tx;
          }
          if (!isHorizontal) {
            ty = tx;
            tx = 0;
          }
          var transform2 = "rotateX(" + (isHorizontal ? 0 : -slideAngle) + "deg) rotateY(" + (isHorizontal ? slideAngle : 0) + "deg) translate3d(" + tx + "px, " + ty + "px, " + tz + "px)";
          if (progress <= 1 && progress > -1) {
            wrapperRotate = slideIndex * 90 + progress * 90;
            if (rtl) {
              wrapperRotate = -slideIndex * 90 - progress * 90;
            }
          }
          $slideEl.transform(transform2);
          if (params.slideShadows) {
            var shadowBefore = isHorizontal ? $slideEl.find(".swiper-slide-shadow-left") : $slideEl.find(".swiper-slide-shadow-top");
            var shadowAfter = isHorizontal ? $slideEl.find(".swiper-slide-shadow-right") : $slideEl.find(".swiper-slide-shadow-bottom");
            if (shadowBefore.length === 0) {
              shadowBefore = $('<div class="swiper-slide-shadow-' + (isHorizontal ? "left" : "top") + '"></div>');
              $slideEl.append(shadowBefore);
            }
            if (shadowAfter.length === 0) {
              shadowAfter = $('<div class="swiper-slide-shadow-' + (isHorizontal ? "right" : "bottom") + '"></div>');
              $slideEl.append(shadowAfter);
            }
            if (shadowBefore.length) {
              shadowBefore[0].style.opacity = Math.max(-progress, 0);
            }
            if (shadowAfter.length) {
              shadowAfter[0].style.opacity = Math.max(progress, 0);
            }
          }
        }
        $wrapperEl.css({
          "-webkit-transform-origin": "50% 50% -" + swiperSize / 2 + "px",
          "-moz-transform-origin": "50% 50% -" + swiperSize / 2 + "px",
          "-ms-transform-origin": "50% 50% -" + swiperSize / 2 + "px",
          "transform-origin": "50% 50% -" + swiperSize / 2 + "px"
        });
        if (params.shadow) {
          if (isHorizontal) {
            $cubeShadowEl.transform("translate3d(0px, " + (swiperWidth / 2 + params.shadowOffset) + "px, " + -swiperWidth / 2 + "px) rotateX(90deg) rotateZ(0deg) scale(" + params.shadowScale + ")");
          } else {
            var shadowAngle = Math.abs(wrapperRotate) - Math.floor(Math.abs(wrapperRotate) / 90) * 90;
            var multiplier = 1.5 - (Math.sin(shadowAngle * 2 * Math.PI / 360) / 2 + Math.cos(shadowAngle * 2 * Math.PI / 360) / 2);
            var scale1 = params.shadowScale;
            var scale2 = params.shadowScale / multiplier;
            var offset2 = params.shadowOffset;
            $cubeShadowEl.transform("scale3d(" + scale1 + ", 1, " + scale2 + ") translate3d(0px, " + (swiperHeight / 2 + offset2) + "px, " + -swiperHeight / 2 / scale2 + "px) rotateX(-90deg)");
          }
        }
        var zFactor = Browser.isSafari || Browser.isUiWebView ? -swiperSize / 2 : 0;
        $wrapperEl.transform("translate3d(0px,0," + zFactor + "px) rotateX(" + (swiper2.isHorizontal() ? 0 : wrapperRotate) + "deg) rotateY(" + (swiper2.isHorizontal() ? -wrapperRotate : 0) + "deg)");
      },
      setTransition: function setTransition2(duration) {
        var swiper2 = this;
        var $el = swiper2.$el;
        var slides = swiper2.slides;
        slides.transition(duration).find(".swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left").transition(duration);
        if (swiper2.params.cubeEffect.shadow && !swiper2.isHorizontal()) {
          $el.find(".swiper-cube-shadow").transition(duration);
        }
      }
    };
    var EffectCube = {
      name: "effect-cube",
      params: {
        cubeEffect: {
          slideShadows: true,
          shadow: true,
          shadowOffset: 20,
          shadowScale: 0.94
        }
      },
      create: function create() {
        var swiper2 = this;
        Utils.extend(swiper2, {
          cubeEffect: {
            setTranslate: Cube.setTranslate.bind(swiper2),
            setTransition: Cube.setTransition.bind(swiper2)
          }
        });
      },
      on: {
        beforeInit: function beforeInit() {
          var swiper2 = this;
          if (swiper2.params.effect !== "cube") {
            return;
          }
          swiper2.classNames.push(swiper2.params.containerModifierClass + "cube");
          swiper2.classNames.push(swiper2.params.containerModifierClass + "3d");
          var overwriteParams = {
            slidesPerView: 1,
            slidesPerColumn: 1,
            slidesPerGroup: 1,
            watchSlidesProgress: true,
            resistanceRatio: 0,
            spaceBetween: 0,
            centeredSlides: false,
            virtualTranslate: true
          };
          Utils.extend(swiper2.params, overwriteParams);
          Utils.extend(swiper2.originalParams, overwriteParams);
        },
        setTranslate: function setTranslate2() {
          var swiper2 = this;
          if (swiper2.params.effect !== "cube") {
            return;
          }
          swiper2.cubeEffect.setTranslate();
        },
        setTransition: function setTransition2(duration) {
          var swiper2 = this;
          if (swiper2.params.effect !== "cube") {
            return;
          }
          swiper2.cubeEffect.setTransition(duration);
        }
      }
    };
    var Flip = {
      setTranslate: function setTranslate2() {
        var swiper2 = this;
        var slides = swiper2.slides;
        var rtl = swiper2.rtlTranslate;
        for (var i = 0; i < slides.length; i += 1) {
          var $slideEl = slides.eq(i);
          var progress = $slideEl[0].progress;
          if (swiper2.params.flipEffect.limitRotation) {
            progress = Math.max(Math.min($slideEl[0].progress, 1), -1);
          }
          var offset2 = $slideEl[0].swiperSlideOffset;
          var rotate = -180 * progress;
          var rotateY = rotate;
          var rotateX = 0;
          var tx = -offset2;
          var ty = 0;
          if (!swiper2.isHorizontal()) {
            ty = tx;
            tx = 0;
            rotateX = -rotateY;
            rotateY = 0;
          } else if (rtl) {
            rotateY = -rotateY;
          }
          $slideEl[0].style.zIndex = -Math.abs(Math.round(progress)) + slides.length;
          if (swiper2.params.flipEffect.slideShadows) {
            var shadowBefore = swiper2.isHorizontal() ? $slideEl.find(".swiper-slide-shadow-left") : $slideEl.find(".swiper-slide-shadow-top");
            var shadowAfter = swiper2.isHorizontal() ? $slideEl.find(".swiper-slide-shadow-right") : $slideEl.find(".swiper-slide-shadow-bottom");
            if (shadowBefore.length === 0) {
              shadowBefore = $('<div class="swiper-slide-shadow-' + (swiper2.isHorizontal() ? "left" : "top") + '"></div>');
              $slideEl.append(shadowBefore);
            }
            if (shadowAfter.length === 0) {
              shadowAfter = $('<div class="swiper-slide-shadow-' + (swiper2.isHorizontal() ? "right" : "bottom") + '"></div>');
              $slideEl.append(shadowAfter);
            }
            if (shadowBefore.length) {
              shadowBefore[0].style.opacity = Math.max(-progress, 0);
            }
            if (shadowAfter.length) {
              shadowAfter[0].style.opacity = Math.max(progress, 0);
            }
          }
          $slideEl.transform("translate3d(" + tx + "px, " + ty + "px, 0px) rotateX(" + rotateX + "deg) rotateY(" + rotateY + "deg)");
        }
      },
      setTransition: function setTransition2(duration) {
        var swiper2 = this;
        var slides = swiper2.slides;
        var activeIndex = swiper2.activeIndex;
        var $wrapperEl = swiper2.$wrapperEl;
        slides.transition(duration).find(".swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left").transition(duration);
        if (swiper2.params.virtualTranslate && duration !== 0) {
          var eventTriggered = false;
          slides.eq(activeIndex).transitionEnd(function onTransitionEnd() {
            if (eventTriggered) {
              return;
            }
            if (!swiper2 || swiper2.destroyed) {
              return;
            }
            eventTriggered = true;
            swiper2.animating = false;
            var triggerEvents = ["webkitTransitionEnd", "transitionend"];
            for (var i = 0; i < triggerEvents.length; i += 1) {
              $wrapperEl.trigger(triggerEvents[i]);
            }
          });
        }
      }
    };
    var EffectFlip = {
      name: "effect-flip",
      params: {
        flipEffect: {
          slideShadows: true,
          limitRotation: true
        }
      },
      create: function create() {
        var swiper2 = this;
        Utils.extend(swiper2, {
          flipEffect: {
            setTranslate: Flip.setTranslate.bind(swiper2),
            setTransition: Flip.setTransition.bind(swiper2)
          }
        });
      },
      on: {
        beforeInit: function beforeInit() {
          var swiper2 = this;
          if (swiper2.params.effect !== "flip") {
            return;
          }
          swiper2.classNames.push(swiper2.params.containerModifierClass + "flip");
          swiper2.classNames.push(swiper2.params.containerModifierClass + "3d");
          var overwriteParams = {
            slidesPerView: 1,
            slidesPerColumn: 1,
            slidesPerGroup: 1,
            watchSlidesProgress: true,
            spaceBetween: 0,
            virtualTranslate: true
          };
          Utils.extend(swiper2.params, overwriteParams);
          Utils.extend(swiper2.originalParams, overwriteParams);
        },
        setTranslate: function setTranslate2() {
          var swiper2 = this;
          if (swiper2.params.effect !== "flip") {
            return;
          }
          swiper2.flipEffect.setTranslate();
        },
        setTransition: function setTransition2(duration) {
          var swiper2 = this;
          if (swiper2.params.effect !== "flip") {
            return;
          }
          swiper2.flipEffect.setTransition(duration);
        }
      }
    };
    var Coverflow = {
      setTranslate: function setTranslate2() {
        var swiper2 = this;
        var swiperWidth = swiper2.width;
        var swiperHeight = swiper2.height;
        var slides = swiper2.slides;
        var $wrapperEl = swiper2.$wrapperEl;
        var slidesSizesGrid = swiper2.slidesSizesGrid;
        var params = swiper2.params.coverflowEffect;
        var isHorizontal = swiper2.isHorizontal();
        var transform2 = swiper2.translate;
        var center = isHorizontal ? -transform2 + swiperWidth / 2 : -transform2 + swiperHeight / 2;
        var rotate = isHorizontal ? params.rotate : -params.rotate;
        var translate2 = params.depth;
        for (var i = 0, length = slides.length; i < length; i += 1) {
          var $slideEl = slides.eq(i);
          var slideSize = slidesSizesGrid[i];
          var slideOffset = $slideEl[0].swiperSlideOffset;
          var offsetMultiplier = (center - slideOffset - slideSize / 2) / slideSize * params.modifier;
          var rotateY = isHorizontal ? rotate * offsetMultiplier : 0;
          var rotateX = isHorizontal ? 0 : rotate * offsetMultiplier;
          var translateZ = -translate2 * Math.abs(offsetMultiplier);
          var translateY = isHorizontal ? 0 : params.stretch * offsetMultiplier;
          var translateX = isHorizontal ? params.stretch * offsetMultiplier : 0;
          if (Math.abs(translateX) < 1e-3) {
            translateX = 0;
          }
          if (Math.abs(translateY) < 1e-3) {
            translateY = 0;
          }
          if (Math.abs(translateZ) < 1e-3) {
            translateZ = 0;
          }
          if (Math.abs(rotateY) < 1e-3) {
            rotateY = 0;
          }
          if (Math.abs(rotateX) < 1e-3) {
            rotateX = 0;
          }
          var slideTransform = "translate3d(" + translateX + "px," + translateY + "px," + translateZ + "px)  rotateX(" + rotateX + "deg) rotateY(" + rotateY + "deg)";
          $slideEl.transform(slideTransform);
          $slideEl[0].style.zIndex = -Math.abs(Math.round(offsetMultiplier)) + 1;
          if (params.slideShadows) {
            var $shadowBeforeEl = isHorizontal ? $slideEl.find(".swiper-slide-shadow-left") : $slideEl.find(".swiper-slide-shadow-top");
            var $shadowAfterEl = isHorizontal ? $slideEl.find(".swiper-slide-shadow-right") : $slideEl.find(".swiper-slide-shadow-bottom");
            if ($shadowBeforeEl.length === 0) {
              $shadowBeforeEl = $('<div class="swiper-slide-shadow-' + (isHorizontal ? "left" : "top") + '"></div>');
              $slideEl.append($shadowBeforeEl);
            }
            if ($shadowAfterEl.length === 0) {
              $shadowAfterEl = $('<div class="swiper-slide-shadow-' + (isHorizontal ? "right" : "bottom") + '"></div>');
              $slideEl.append($shadowAfterEl);
            }
            if ($shadowBeforeEl.length) {
              $shadowBeforeEl[0].style.opacity = offsetMultiplier > 0 ? offsetMultiplier : 0;
            }
            if ($shadowAfterEl.length) {
              $shadowAfterEl[0].style.opacity = -offsetMultiplier > 0 ? -offsetMultiplier : 0;
            }
          }
        }
        if (Support.pointerEvents || Support.prefixedPointerEvents) {
          var ws = $wrapperEl[0].style;
          ws.perspectiveOrigin = center + "px 50%";
        }
      },
      setTransition: function setTransition2(duration) {
        var swiper2 = this;
        swiper2.slides.transition(duration).find(".swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left").transition(duration);
      }
    };
    var EffectCoverflow = {
      name: "effect-coverflow",
      params: {
        coverflowEffect: {
          rotate: 50,
          stretch: 0,
          depth: 100,
          modifier: 1,
          slideShadows: true
        }
      },
      create: function create() {
        var swiper2 = this;
        Utils.extend(swiper2, {
          coverflowEffect: {
            setTranslate: Coverflow.setTranslate.bind(swiper2),
            setTransition: Coverflow.setTransition.bind(swiper2)
          }
        });
      },
      on: {
        beforeInit: function beforeInit() {
          var swiper2 = this;
          if (swiper2.params.effect !== "coverflow") {
            return;
          }
          swiper2.classNames.push(swiper2.params.containerModifierClass + "coverflow");
          swiper2.classNames.push(swiper2.params.containerModifierClass + "3d");
          swiper2.params.watchSlidesProgress = true;
          swiper2.originalParams.watchSlidesProgress = true;
        },
        setTranslate: function setTranslate2() {
          var swiper2 = this;
          if (swiper2.params.effect !== "coverflow") {
            return;
          }
          swiper2.coverflowEffect.setTranslate();
        },
        setTransition: function setTransition2(duration) {
          var swiper2 = this;
          if (swiper2.params.effect !== "coverflow") {
            return;
          }
          swiper2.coverflowEffect.setTransition(duration);
        }
      }
    };
    var Thumbs = {
      init: function init() {
        var swiper2 = this;
        var ref = swiper2.params;
        var thumbsParams = ref.thumbs;
        var SwiperClass2 = swiper2.constructor;
        if (thumbsParams.swiper instanceof SwiperClass2) {
          swiper2.thumbs.swiper = thumbsParams.swiper;
          Utils.extend(swiper2.thumbs.swiper.originalParams, {
            watchSlidesProgress: true,
            slideToClickedSlide: false
          });
          Utils.extend(swiper2.thumbs.swiper.params, {
            watchSlidesProgress: true,
            slideToClickedSlide: false
          });
        } else if (Utils.isObject(thumbsParams.swiper)) {
          swiper2.thumbs.swiper = new SwiperClass2(Utils.extend({}, thumbsParams.swiper, {
            watchSlidesVisibility: true,
            watchSlidesProgress: true,
            slideToClickedSlide: false
          }));
          swiper2.thumbs.swiperCreated = true;
        }
        swiper2.thumbs.swiper.$el.addClass(swiper2.params.thumbs.thumbsContainerClass);
        swiper2.thumbs.swiper.on("tap", swiper2.thumbs.onThumbClick);
      },
      onThumbClick: function onThumbClick() {
        var swiper2 = this;
        var thumbsSwiper = swiper2.thumbs.swiper;
        if (!thumbsSwiper) {
          return;
        }
        var clickedIndex = thumbsSwiper.clickedIndex;
        var clickedSlide = thumbsSwiper.clickedSlide;
        if (clickedSlide && $(clickedSlide).hasClass(swiper2.params.thumbs.slideThumbActiveClass)) {
          return;
        }
        if (typeof clickedIndex === "undefined" || clickedIndex === null) {
          return;
        }
        var slideToIndex;
        if (thumbsSwiper.params.loop) {
          slideToIndex = parseInt($(thumbsSwiper.clickedSlide).attr("data-swiper-slide-index"), 10);
        } else {
          slideToIndex = clickedIndex;
        }
        if (swiper2.params.loop) {
          var currentIndex = swiper2.activeIndex;
          if (swiper2.slides.eq(currentIndex).hasClass(swiper2.params.slideDuplicateClass)) {
            swiper2.loopFix();
            swiper2._clientLeft = swiper2.$wrapperEl[0].clientLeft;
            currentIndex = swiper2.activeIndex;
          }
          var prevIndex = swiper2.slides.eq(currentIndex).prevAll('[data-swiper-slide-index="' + slideToIndex + '"]').eq(0).index();
          var nextIndex = swiper2.slides.eq(currentIndex).nextAll('[data-swiper-slide-index="' + slideToIndex + '"]').eq(0).index();
          if (typeof prevIndex === "undefined") {
            slideToIndex = nextIndex;
          } else if (typeof nextIndex === "undefined") {
            slideToIndex = prevIndex;
          } else if (nextIndex - currentIndex < currentIndex - prevIndex) {
            slideToIndex = nextIndex;
          } else {
            slideToIndex = prevIndex;
          }
        }
        swiper2.slideTo(slideToIndex);
      },
      update: function update2(initial) {
        var swiper2 = this;
        var thumbsSwiper = swiper2.thumbs.swiper;
        if (!thumbsSwiper) {
          return;
        }
        var slidesPerView = thumbsSwiper.params.slidesPerView === "auto" ? thumbsSwiper.slidesPerViewDynamic() : thumbsSwiper.params.slidesPerView;
        if (swiper2.realIndex !== thumbsSwiper.realIndex) {
          var currentThumbsIndex = thumbsSwiper.activeIndex;
          var newThumbsIndex;
          if (thumbsSwiper.params.loop) {
            if (thumbsSwiper.slides.eq(currentThumbsIndex).hasClass(thumbsSwiper.params.slideDuplicateClass)) {
              thumbsSwiper.loopFix();
              thumbsSwiper._clientLeft = thumbsSwiper.$wrapperEl[0].clientLeft;
              currentThumbsIndex = thumbsSwiper.activeIndex;
            }
            var prevThumbsIndex = thumbsSwiper.slides.eq(currentThumbsIndex).prevAll('[data-swiper-slide-index="' + swiper2.realIndex + '"]').eq(0).index();
            var nextThumbsIndex = thumbsSwiper.slides.eq(currentThumbsIndex).nextAll('[data-swiper-slide-index="' + swiper2.realIndex + '"]').eq(0).index();
            if (typeof prevThumbsIndex === "undefined") {
              newThumbsIndex = nextThumbsIndex;
            } else if (typeof nextThumbsIndex === "undefined") {
              newThumbsIndex = prevThumbsIndex;
            } else if (nextThumbsIndex - currentThumbsIndex === currentThumbsIndex - prevThumbsIndex) {
              newThumbsIndex = currentThumbsIndex;
            } else if (nextThumbsIndex - currentThumbsIndex < currentThumbsIndex - prevThumbsIndex) {
              newThumbsIndex = nextThumbsIndex;
            } else {
              newThumbsIndex = prevThumbsIndex;
            }
          } else {
            newThumbsIndex = swiper2.realIndex;
          }
          if (thumbsSwiper.visibleSlidesIndexes && thumbsSwiper.visibleSlidesIndexes.indexOf(newThumbsIndex) < 0) {
            if (thumbsSwiper.params.centeredSlides) {
              if (newThumbsIndex > currentThumbsIndex) {
                newThumbsIndex = newThumbsIndex - Math.floor(slidesPerView / 2) + 1;
              } else {
                newThumbsIndex = newThumbsIndex + Math.floor(slidesPerView / 2) - 1;
              }
            } else if (newThumbsIndex > currentThumbsIndex) {
              newThumbsIndex = newThumbsIndex - slidesPerView + 1;
            }
            thumbsSwiper.slideTo(newThumbsIndex, initial ? 0 : void 0);
          }
        }
        var thumbsToActivate = 1;
        var thumbActiveClass = swiper2.params.thumbs.slideThumbActiveClass;
        if (swiper2.params.slidesPerView > 1 && !swiper2.params.centeredSlides) {
          thumbsToActivate = swiper2.params.slidesPerView;
        }
        thumbsSwiper.slides.removeClass(thumbActiveClass);
        if (thumbsSwiper.params.loop || thumbsSwiper.params.virtual) {
          for (var i = 0; i < thumbsToActivate; i += 1) {
            thumbsSwiper.$wrapperEl.children('[data-swiper-slide-index="' + (swiper2.realIndex + i) + '"]').addClass(thumbActiveClass);
          }
        } else {
          for (var i$1 = 0; i$1 < thumbsToActivate; i$1 += 1) {
            thumbsSwiper.slides.eq(swiper2.realIndex + i$1).addClass(thumbActiveClass);
          }
        }
      }
    };
    var Thumbs$1 = {
      name: "thumbs",
      params: {
        thumbs: {
          swiper: null,
          slideThumbActiveClass: "swiper-slide-thumb-active",
          thumbsContainerClass: "swiper-container-thumbs"
        }
      },
      create: function create() {
        var swiper2 = this;
        Utils.extend(swiper2, {
          thumbs: {
            swiper: null,
            init: Thumbs.init.bind(swiper2),
            update: Thumbs.update.bind(swiper2),
            onThumbClick: Thumbs.onThumbClick.bind(swiper2)
          }
        });
      },
      on: {
        beforeInit: function beforeInit() {
          var swiper2 = this;
          var ref = swiper2.params;
          var thumbs = ref.thumbs;
          if (!thumbs || !thumbs.swiper) {
            return;
          }
          swiper2.thumbs.init();
          swiper2.thumbs.update(true);
        },
        slideChange: function slideChange() {
          var swiper2 = this;
          if (!swiper2.thumbs.swiper) {
            return;
          }
          swiper2.thumbs.update();
        },
        update: function update2() {
          var swiper2 = this;
          if (!swiper2.thumbs.swiper) {
            return;
          }
          swiper2.thumbs.update();
        },
        resize: function resize() {
          var swiper2 = this;
          if (!swiper2.thumbs.swiper) {
            return;
          }
          swiper2.thumbs.update();
        },
        observerUpdate: function observerUpdate() {
          var swiper2 = this;
          if (!swiper2.thumbs.swiper) {
            return;
          }
          swiper2.thumbs.update();
        },
        setTransition: function setTransition2(duration) {
          var swiper2 = this;
          var thumbsSwiper = swiper2.thumbs.swiper;
          if (!thumbsSwiper) {
            return;
          }
          thumbsSwiper.setTransition(duration);
        },
        beforeDestroy: function beforeDestroy() {
          var swiper2 = this;
          var thumbsSwiper = swiper2.thumbs.swiper;
          if (!thumbsSwiper) {
            return;
          }
          if (swiper2.thumbs.swiperCreated && thumbsSwiper) {
            thumbsSwiper.destroy();
          }
        }
      }
    };
    var components = [
      Device$1,
      Support$1,
      Browser$1,
      Resize,
      Observer$1,
      Virtual$1,
      Keyboard$1,
      Mousewheel$1,
      Navigation$1,
      Pagination$1,
      Scrollbar$1,
      Parallax$1,
      Zoom$1,
      Lazy$1,
      Controller$1,
      A11y,
      History$1,
      HashNavigation$1,
      Autoplay$1,
      EffectFade,
      EffectCube,
      EffectFlip,
      EffectCoverflow,
      Thumbs$1
    ];
    if (typeof Swiper.use === "undefined") {
      Swiper.use = Swiper.Class.use;
      Swiper.installModule = Swiper.Class.installModule;
    }
    Swiper.use(components);
    return Swiper;
  });
})(swiper$1);
const swiper = "";
const font = "";
var freeGlobal = typeof global == "object" && global && global.Object === Object && global;
const freeGlobal$1 = freeGlobal;
var freeSelf = typeof self == "object" && self && self.Object === Object && self;
var root = freeGlobal$1 || freeSelf || Function("return this")();
const root$1 = root;
var Symbol$1 = root$1.Symbol;
const Symbol$2 = Symbol$1;
var objectProto$b = Object.prototype;
var hasOwnProperty$8 = objectProto$b.hasOwnProperty;
var nativeObjectToString$1 = objectProto$b.toString;
var symToStringTag$1 = Symbol$2 ? Symbol$2.toStringTag : void 0;
function getRawTag(value) {
  var isOwn = hasOwnProperty$8.call(value, symToStringTag$1), tag = value[symToStringTag$1];
  try {
    value[symToStringTag$1] = void 0;
    var unmasked = true;
  } catch (e) {
  }
  var result = nativeObjectToString$1.call(value);
  if (unmasked) {
    if (isOwn) {
      value[symToStringTag$1] = tag;
    } else {
      delete value[symToStringTag$1];
    }
  }
  return result;
}
var objectProto$a = Object.prototype;
var nativeObjectToString = objectProto$a.toString;
function objectToString(value) {
  return nativeObjectToString.call(value);
}
var nullTag = "[object Null]", undefinedTag = "[object Undefined]";
var symToStringTag = Symbol$2 ? Symbol$2.toStringTag : void 0;
function baseGetTag(value) {
  if (value == null) {
    return value === void 0 ? undefinedTag : nullTag;
  }
  return symToStringTag && symToStringTag in Object(value) ? getRawTag(value) : objectToString(value);
}
function isObjectLike(value) {
  return value != null && typeof value == "object";
}
var symbolTag$1 = "[object Symbol]";
function isSymbol(value) {
  return typeof value == "symbol" || isObjectLike(value) && baseGetTag(value) == symbolTag$1;
}
function arrayMap(array, iteratee) {
  var index = -1, length = array == null ? 0 : array.length, result = Array(length);
  while (++index < length) {
    result[index] = iteratee(array[index], index, array);
  }
  return result;
}
var isArray = Array.isArray;
const isArray$1 = isArray;
var INFINITY$2 = 1 / 0;
var symbolProto$1 = Symbol$2 ? Symbol$2.prototype : void 0, symbolToString = symbolProto$1 ? symbolProto$1.toString : void 0;
function baseToString(value) {
  if (typeof value == "string") {
    return value;
  }
  if (isArray$1(value)) {
    return arrayMap(value, baseToString) + "";
  }
  if (isSymbol(value)) {
    return symbolToString ? symbolToString.call(value) : "";
  }
  var result = value + "";
  return result == "0" && 1 / value == -INFINITY$2 ? "-0" : result;
}
var reWhitespace = /\s/;
function trimmedEndIndex(string) {
  var index = string.length;
  while (index-- && reWhitespace.test(string.charAt(index))) {
  }
  return index;
}
var reTrimStart = /^\s+/;
function baseTrim(string) {
  return string ? string.slice(0, trimmedEndIndex(string) + 1).replace(reTrimStart, "") : string;
}
function isObject(value) {
  var type = typeof value;
  return value != null && (type == "object" || type == "function");
}
var NAN = 0 / 0;
var reIsBadHex = /^[-+]0x[0-9a-f]+$/i;
var reIsBinary = /^0b[01]+$/i;
var reIsOctal = /^0o[0-7]+$/i;
var freeParseInt = parseInt;
function toNumber(value) {
  if (typeof value == "number") {
    return value;
  }
  if (isSymbol(value)) {
    return NAN;
  }
  if (isObject(value)) {
    var other = typeof value.valueOf == "function" ? value.valueOf() : value;
    value = isObject(other) ? other + "" : other;
  }
  if (typeof value != "string") {
    return value === 0 ? value : +value;
  }
  value = baseTrim(value);
  var isBinary = reIsBinary.test(value);
  return isBinary || reIsOctal.test(value) ? freeParseInt(value.slice(2), isBinary ? 2 : 8) : reIsBadHex.test(value) ? NAN : +value;
}
var INFINITY$1 = 1 / 0, MAX_INTEGER = 17976931348623157e292;
function toFinite(value) {
  if (!value) {
    return value === 0 ? value : 0;
  }
  value = toNumber(value);
  if (value === INFINITY$1 || value === -INFINITY$1) {
    var sign = value < 0 ? -1 : 1;
    return sign * MAX_INTEGER;
  }
  return value === value ? value : 0;
}
function toInteger(value) {
  var result = toFinite(value), remainder = result % 1;
  return result === result ? remainder ? result - remainder : result : 0;
}
function identity(value) {
  return value;
}
var asyncTag = "[object AsyncFunction]", funcTag$1 = "[object Function]", genTag = "[object GeneratorFunction]", proxyTag = "[object Proxy]";
function isFunction(value) {
  if (!isObject(value)) {
    return false;
  }
  var tag = baseGetTag(value);
  return tag == funcTag$1 || tag == genTag || tag == asyncTag || tag == proxyTag;
}
var coreJsData = root$1["__core-js_shared__"];
const coreJsData$1 = coreJsData;
var maskSrcKey = function() {
  var uid = /[^.]+$/.exec(coreJsData$1 && coreJsData$1.keys && coreJsData$1.keys.IE_PROTO || "");
  return uid ? "Symbol(src)_1." + uid : "";
}();
function isMasked(func) {
  return !!maskSrcKey && maskSrcKey in func;
}
var funcProto$1 = Function.prototype;
var funcToString$1 = funcProto$1.toString;
function toSource(func) {
  if (func != null) {
    try {
      return funcToString$1.call(func);
    } catch (e) {
    }
    try {
      return func + "";
    } catch (e) {
    }
  }
  return "";
}
var reRegExpChar = /[\\^$.*+?()[\]{}|]/g;
var reIsHostCtor = /^\[object .+?Constructor\]$/;
var funcProto = Function.prototype, objectProto$9 = Object.prototype;
var funcToString = funcProto.toString;
var hasOwnProperty$7 = objectProto$9.hasOwnProperty;
var reIsNative = RegExp(
  "^" + funcToString.call(hasOwnProperty$7).replace(reRegExpChar, "\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, "$1.*?") + "$"
);
function baseIsNative(value) {
  if (!isObject(value) || isMasked(value)) {
    return false;
  }
  var pattern = isFunction(value) ? reIsNative : reIsHostCtor;
  return pattern.test(toSource(value));
}
function getValue(object, key) {
  return object == null ? void 0 : object[key];
}
function getNative(object, key) {
  var value = getValue(object, key);
  return baseIsNative(value) ? value : void 0;
}
var WeakMap = getNative(root$1, "WeakMap");
const WeakMap$1 = WeakMap;
function baseFindIndex(array, predicate, fromIndex, fromRight) {
  var length = array.length, index = fromIndex + (fromRight ? 1 : -1);
  while (fromRight ? index-- : ++index < length) {
    if (predicate(array[index], index, array)) {
      return index;
    }
  }
  return -1;
}
var MAX_SAFE_INTEGER$1 = 9007199254740991;
var reIsUint = /^(?:0|[1-9]\d*)$/;
function isIndex(value, length) {
  var type = typeof value;
  length = length == null ? MAX_SAFE_INTEGER$1 : length;
  return !!length && (type == "number" || type != "symbol" && reIsUint.test(value)) && (value > -1 && value % 1 == 0 && value < length);
}
function eq(value, other) {
  return value === other || value !== value && other !== other;
}
var MAX_SAFE_INTEGER = 9007199254740991;
function isLength(value) {
  return typeof value == "number" && value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;
}
function isArrayLike(value) {
  return value != null && isLength(value.length) && !isFunction(value);
}
var objectProto$8 = Object.prototype;
function isPrototype(value) {
  var Ctor = value && value.constructor, proto = typeof Ctor == "function" && Ctor.prototype || objectProto$8;
  return value === proto;
}
function baseTimes(n, iteratee) {
  var index = -1, result = Array(n);
  while (++index < n) {
    result[index] = iteratee(index);
  }
  return result;
}
var argsTag$2 = "[object Arguments]";
function baseIsArguments(value) {
  return isObjectLike(value) && baseGetTag(value) == argsTag$2;
}
var objectProto$7 = Object.prototype;
var hasOwnProperty$6 = objectProto$7.hasOwnProperty;
var propertyIsEnumerable$1 = objectProto$7.propertyIsEnumerable;
var isArguments = baseIsArguments(function() {
  return arguments;
}()) ? baseIsArguments : function(value) {
  return isObjectLike(value) && hasOwnProperty$6.call(value, "callee") && !propertyIsEnumerable$1.call(value, "callee");
};
const isArguments$1 = isArguments;
function stubFalse() {
  return false;
}
var freeExports$1 = typeof exports == "object" && exports && !exports.nodeType && exports;
var freeModule$1 = freeExports$1 && typeof module == "object" && module && !module.nodeType && module;
var moduleExports$1 = freeModule$1 && freeModule$1.exports === freeExports$1;
var Buffer = moduleExports$1 ? root$1.Buffer : void 0;
var nativeIsBuffer = Buffer ? Buffer.isBuffer : void 0;
var isBuffer = nativeIsBuffer || stubFalse;
const isBuffer$1 = isBuffer;
var argsTag$1 = "[object Arguments]", arrayTag$1 = "[object Array]", boolTag$1 = "[object Boolean]", dateTag$1 = "[object Date]", errorTag$1 = "[object Error]", funcTag = "[object Function]", mapTag$2 = "[object Map]", numberTag$1 = "[object Number]", objectTag$2 = "[object Object]", regexpTag$1 = "[object RegExp]", setTag$2 = "[object Set]", stringTag$1 = "[object String]", weakMapTag$1 = "[object WeakMap]";
var arrayBufferTag$1 = "[object ArrayBuffer]", dataViewTag$2 = "[object DataView]", float32Tag = "[object Float32Array]", float64Tag = "[object Float64Array]", int8Tag = "[object Int8Array]", int16Tag = "[object Int16Array]", int32Tag = "[object Int32Array]", uint8Tag = "[object Uint8Array]", uint8ClampedTag = "[object Uint8ClampedArray]", uint16Tag = "[object Uint16Array]", uint32Tag = "[object Uint32Array]";
var typedArrayTags = {};
typedArrayTags[float32Tag] = typedArrayTags[float64Tag] = typedArrayTags[int8Tag] = typedArrayTags[int16Tag] = typedArrayTags[int32Tag] = typedArrayTags[uint8Tag] = typedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] = typedArrayTags[uint32Tag] = true;
typedArrayTags[argsTag$1] = typedArrayTags[arrayTag$1] = typedArrayTags[arrayBufferTag$1] = typedArrayTags[boolTag$1] = typedArrayTags[dataViewTag$2] = typedArrayTags[dateTag$1] = typedArrayTags[errorTag$1] = typedArrayTags[funcTag] = typedArrayTags[mapTag$2] = typedArrayTags[numberTag$1] = typedArrayTags[objectTag$2] = typedArrayTags[regexpTag$1] = typedArrayTags[setTag$2] = typedArrayTags[stringTag$1] = typedArrayTags[weakMapTag$1] = false;
function baseIsTypedArray(value) {
  return isObjectLike(value) && isLength(value.length) && !!typedArrayTags[baseGetTag(value)];
}
function baseUnary(func) {
  return function(value) {
    return func(value);
  };
}
var freeExports = typeof exports == "object" && exports && !exports.nodeType && exports;
var freeModule = freeExports && typeof module == "object" && module && !module.nodeType && module;
var moduleExports = freeModule && freeModule.exports === freeExports;
var freeProcess = moduleExports && freeGlobal$1.process;
var nodeUtil = function() {
  try {
    var types = freeModule && freeModule.require && freeModule.require("util").types;
    if (types) {
      return types;
    }
    return freeProcess && freeProcess.binding && freeProcess.binding("util");
  } catch (e) {
  }
}();
const nodeUtil$1 = nodeUtil;
var nodeIsTypedArray = nodeUtil$1 && nodeUtil$1.isTypedArray;
var isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;
const isTypedArray$1 = isTypedArray;
var objectProto$6 = Object.prototype;
var hasOwnProperty$5 = objectProto$6.hasOwnProperty;
function arrayLikeKeys(value, inherited) {
  var isArr = isArray$1(value), isArg = !isArr && isArguments$1(value), isBuff = !isArr && !isArg && isBuffer$1(value), isType = !isArr && !isArg && !isBuff && isTypedArray$1(value), skipIndexes = isArr || isArg || isBuff || isType, result = skipIndexes ? baseTimes(value.length, String) : [], length = result.length;
  for (var key in value) {
    if ((inherited || hasOwnProperty$5.call(value, key)) && !(skipIndexes && // Safari 9 has enumerable `arguments.length` in strict mode.
    (key == "length" || // Node.js 0.10 has enumerable non-index properties on buffers.
    isBuff && (key == "offset" || key == "parent") || // PhantomJS 2 has enumerable non-index properties on typed arrays.
    isType && (key == "buffer" || key == "byteLength" || key == "byteOffset") || // Skip index properties.
    isIndex(key, length)))) {
      result.push(key);
    }
  }
  return result;
}
function overArg(func, transform) {
  return function(arg) {
    return func(transform(arg));
  };
}
var nativeKeys = overArg(Object.keys, Object);
const nativeKeys$1 = nativeKeys;
var objectProto$5 = Object.prototype;
var hasOwnProperty$4 = objectProto$5.hasOwnProperty;
function baseKeys(object) {
  if (!isPrototype(object)) {
    return nativeKeys$1(object);
  }
  var result = [];
  for (var key in Object(object)) {
    if (hasOwnProperty$4.call(object, key) && key != "constructor") {
      result.push(key);
    }
  }
  return result;
}
function keys(object) {
  return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);
}
var reIsDeepProp = /\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/, reIsPlainProp = /^\w*$/;
function isKey(value, object) {
  if (isArray$1(value)) {
    return false;
  }
  var type = typeof value;
  if (type == "number" || type == "symbol" || type == "boolean" || value == null || isSymbol(value)) {
    return true;
  }
  return reIsPlainProp.test(value) || !reIsDeepProp.test(value) || object != null && value in Object(object);
}
var nativeCreate = getNative(Object, "create");
const nativeCreate$1 = nativeCreate;
function hashClear() {
  this.__data__ = nativeCreate$1 ? nativeCreate$1(null) : {};
  this.size = 0;
}
function hashDelete(key) {
  var result = this.has(key) && delete this.__data__[key];
  this.size -= result ? 1 : 0;
  return result;
}
var HASH_UNDEFINED$2 = "__lodash_hash_undefined__";
var objectProto$4 = Object.prototype;
var hasOwnProperty$3 = objectProto$4.hasOwnProperty;
function hashGet(key) {
  var data = this.__data__;
  if (nativeCreate$1) {
    var result = data[key];
    return result === HASH_UNDEFINED$2 ? void 0 : result;
  }
  return hasOwnProperty$3.call(data, key) ? data[key] : void 0;
}
var objectProto$3 = Object.prototype;
var hasOwnProperty$2 = objectProto$3.hasOwnProperty;
function hashHas(key) {
  var data = this.__data__;
  return nativeCreate$1 ? data[key] !== void 0 : hasOwnProperty$2.call(data, key);
}
var HASH_UNDEFINED$1 = "__lodash_hash_undefined__";
function hashSet(key, value) {
  var data = this.__data__;
  this.size += this.has(key) ? 0 : 1;
  data[key] = nativeCreate$1 && value === void 0 ? HASH_UNDEFINED$1 : value;
  return this;
}
function Hash(entries) {
  var index = -1, length = entries == null ? 0 : entries.length;
  this.clear();
  while (++index < length) {
    var entry = entries[index];
    this.set(entry[0], entry[1]);
  }
}
Hash.prototype.clear = hashClear;
Hash.prototype["delete"] = hashDelete;
Hash.prototype.get = hashGet;
Hash.prototype.has = hashHas;
Hash.prototype.set = hashSet;
function listCacheClear() {
  this.__data__ = [];
  this.size = 0;
}
function assocIndexOf(array, key) {
  var length = array.length;
  while (length--) {
    if (eq(array[length][0], key)) {
      return length;
    }
  }
  return -1;
}
var arrayProto = Array.prototype;
var splice = arrayProto.splice;
function listCacheDelete(key) {
  var data = this.__data__, index = assocIndexOf(data, key);
  if (index < 0) {
    return false;
  }
  var lastIndex = data.length - 1;
  if (index == lastIndex) {
    data.pop();
  } else {
    splice.call(data, index, 1);
  }
  --this.size;
  return true;
}
function listCacheGet(key) {
  var data = this.__data__, index = assocIndexOf(data, key);
  return index < 0 ? void 0 : data[index][1];
}
function listCacheHas(key) {
  return assocIndexOf(this.__data__, key) > -1;
}
function listCacheSet(key, value) {
  var data = this.__data__, index = assocIndexOf(data, key);
  if (index < 0) {
    ++this.size;
    data.push([key, value]);
  } else {
    data[index][1] = value;
  }
  return this;
}
function ListCache(entries) {
  var index = -1, length = entries == null ? 0 : entries.length;
  this.clear();
  while (++index < length) {
    var entry = entries[index];
    this.set(entry[0], entry[1]);
  }
}
ListCache.prototype.clear = listCacheClear;
ListCache.prototype["delete"] = listCacheDelete;
ListCache.prototype.get = listCacheGet;
ListCache.prototype.has = listCacheHas;
ListCache.prototype.set = listCacheSet;
var Map = getNative(root$1, "Map");
const Map$1 = Map;
function mapCacheClear() {
  this.size = 0;
  this.__data__ = {
    "hash": new Hash(),
    "map": new (Map$1 || ListCache)(),
    "string": new Hash()
  };
}
function isKeyable(value) {
  var type = typeof value;
  return type == "string" || type == "number" || type == "symbol" || type == "boolean" ? value !== "__proto__" : value === null;
}
function getMapData(map, key) {
  var data = map.__data__;
  return isKeyable(key) ? data[typeof key == "string" ? "string" : "hash"] : data.map;
}
function mapCacheDelete(key) {
  var result = getMapData(this, key)["delete"](key);
  this.size -= result ? 1 : 0;
  return result;
}
function mapCacheGet(key) {
  return getMapData(this, key).get(key);
}
function mapCacheHas(key) {
  return getMapData(this, key).has(key);
}
function mapCacheSet(key, value) {
  var data = getMapData(this, key), size = data.size;
  data.set(key, value);
  this.size += data.size == size ? 0 : 1;
  return this;
}
function MapCache(entries) {
  var index = -1, length = entries == null ? 0 : entries.length;
  this.clear();
  while (++index < length) {
    var entry = entries[index];
    this.set(entry[0], entry[1]);
  }
}
MapCache.prototype.clear = mapCacheClear;
MapCache.prototype["delete"] = mapCacheDelete;
MapCache.prototype.get = mapCacheGet;
MapCache.prototype.has = mapCacheHas;
MapCache.prototype.set = mapCacheSet;
var FUNC_ERROR_TEXT$2 = "Expected a function";
function memoize(func, resolver) {
  if (typeof func != "function" || resolver != null && typeof resolver != "function") {
    throw new TypeError(FUNC_ERROR_TEXT$2);
  }
  var memoized = function() {
    var args = arguments, key = resolver ? resolver.apply(this, args) : args[0], cache = memoized.cache;
    if (cache.has(key)) {
      return cache.get(key);
    }
    var result = func.apply(this, args);
    memoized.cache = cache.set(key, result) || cache;
    return result;
  };
  memoized.cache = new (memoize.Cache || MapCache)();
  return memoized;
}
memoize.Cache = MapCache;
var MAX_MEMOIZE_SIZE = 500;
function memoizeCapped(func) {
  var result = memoize(func, function(key) {
    if (cache.size === MAX_MEMOIZE_SIZE) {
      cache.clear();
    }
    return key;
  });
  var cache = result.cache;
  return result;
}
var rePropName = /[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g;
var reEscapeChar = /\\(\\)?/g;
var stringToPath = memoizeCapped(function(string) {
  var result = [];
  if (string.charCodeAt(0) === 46) {
    result.push("");
  }
  string.replace(rePropName, function(match, number, quote, subString) {
    result.push(quote ? subString.replace(reEscapeChar, "$1") : number || match);
  });
  return result;
});
const stringToPath$1 = stringToPath;
function toString(value) {
  return value == null ? "" : baseToString(value);
}
function castPath(value, object) {
  if (isArray$1(value)) {
    return value;
  }
  return isKey(value, object) ? [value] : stringToPath$1(toString(value));
}
var INFINITY = 1 / 0;
function toKey(value) {
  if (typeof value == "string" || isSymbol(value)) {
    return value;
  }
  var result = value + "";
  return result == "0" && 1 / value == -INFINITY ? "-0" : result;
}
function baseGet(object, path) {
  path = castPath(path, object);
  var index = 0, length = path.length;
  while (object != null && index < length) {
    object = object[toKey(path[index++])];
  }
  return index && index == length ? object : void 0;
}
function get(object, path, defaultValue) {
  var result = object == null ? void 0 : baseGet(object, path);
  return result === void 0 ? defaultValue : result;
}
function arrayPush(array, values) {
  var index = -1, length = values.length, offset = array.length;
  while (++index < length) {
    array[offset + index] = values[index];
  }
  return array;
}
function stackClear() {
  this.__data__ = new ListCache();
  this.size = 0;
}
function stackDelete(key) {
  var data = this.__data__, result = data["delete"](key);
  this.size = data.size;
  return result;
}
function stackGet(key) {
  return this.__data__.get(key);
}
function stackHas(key) {
  return this.__data__.has(key);
}
var LARGE_ARRAY_SIZE = 200;
function stackSet(key, value) {
  var data = this.__data__;
  if (data instanceof ListCache) {
    var pairs = data.__data__;
    if (!Map$1 || pairs.length < LARGE_ARRAY_SIZE - 1) {
      pairs.push([key, value]);
      this.size = ++data.size;
      return this;
    }
    data = this.__data__ = new MapCache(pairs);
  }
  data.set(key, value);
  this.size = data.size;
  return this;
}
function Stack(entries) {
  var data = this.__data__ = new ListCache(entries);
  this.size = data.size;
}
Stack.prototype.clear = stackClear;
Stack.prototype["delete"] = stackDelete;
Stack.prototype.get = stackGet;
Stack.prototype.has = stackHas;
Stack.prototype.set = stackSet;
function arrayFilter(array, predicate) {
  var index = -1, length = array == null ? 0 : array.length, resIndex = 0, result = [];
  while (++index < length) {
    var value = array[index];
    if (predicate(value, index, array)) {
      result[resIndex++] = value;
    }
  }
  return result;
}
function stubArray() {
  return [];
}
var objectProto$2 = Object.prototype;
var propertyIsEnumerable = objectProto$2.propertyIsEnumerable;
var nativeGetSymbols = Object.getOwnPropertySymbols;
var getSymbols = !nativeGetSymbols ? stubArray : function(object) {
  if (object == null) {
    return [];
  }
  object = Object(object);
  return arrayFilter(nativeGetSymbols(object), function(symbol) {
    return propertyIsEnumerable.call(object, symbol);
  });
};
const getSymbols$1 = getSymbols;
function baseGetAllKeys(object, keysFunc, symbolsFunc) {
  var result = keysFunc(object);
  return isArray$1(object) ? result : arrayPush(result, symbolsFunc(object));
}
function getAllKeys(object) {
  return baseGetAllKeys(object, keys, getSymbols$1);
}
var DataView = getNative(root$1, "DataView");
const DataView$1 = DataView;
var Promise$1 = getNative(root$1, "Promise");
const Promise$2 = Promise$1;
var Set = getNative(root$1, "Set");
const Set$1 = Set;
var mapTag$1 = "[object Map]", objectTag$1 = "[object Object]", promiseTag = "[object Promise]", setTag$1 = "[object Set]", weakMapTag = "[object WeakMap]";
var dataViewTag$1 = "[object DataView]";
var dataViewCtorString = toSource(DataView$1), mapCtorString = toSource(Map$1), promiseCtorString = toSource(Promise$2), setCtorString = toSource(Set$1), weakMapCtorString = toSource(WeakMap$1);
var getTag = baseGetTag;
if (DataView$1 && getTag(new DataView$1(new ArrayBuffer(1))) != dataViewTag$1 || Map$1 && getTag(new Map$1()) != mapTag$1 || Promise$2 && getTag(Promise$2.resolve()) != promiseTag || Set$1 && getTag(new Set$1()) != setTag$1 || WeakMap$1 && getTag(new WeakMap$1()) != weakMapTag) {
  getTag = function(value) {
    var result = baseGetTag(value), Ctor = result == objectTag$1 ? value.constructor : void 0, ctorString = Ctor ? toSource(Ctor) : "";
    if (ctorString) {
      switch (ctorString) {
        case dataViewCtorString:
          return dataViewTag$1;
        case mapCtorString:
          return mapTag$1;
        case promiseCtorString:
          return promiseTag;
        case setCtorString:
          return setTag$1;
        case weakMapCtorString:
          return weakMapTag;
      }
    }
    return result;
  };
}
const getTag$1 = getTag;
var Uint8Array = root$1.Uint8Array;
const Uint8Array$1 = Uint8Array;
var HASH_UNDEFINED = "__lodash_hash_undefined__";
function setCacheAdd(value) {
  this.__data__.set(value, HASH_UNDEFINED);
  return this;
}
function setCacheHas(value) {
  return this.__data__.has(value);
}
function SetCache(values) {
  var index = -1, length = values == null ? 0 : values.length;
  this.__data__ = new MapCache();
  while (++index < length) {
    this.add(values[index]);
  }
}
SetCache.prototype.add = SetCache.prototype.push = setCacheAdd;
SetCache.prototype.has = setCacheHas;
function arraySome(array, predicate) {
  var index = -1, length = array == null ? 0 : array.length;
  while (++index < length) {
    if (predicate(array[index], index, array)) {
      return true;
    }
  }
  return false;
}
function cacheHas(cache, key) {
  return cache.has(key);
}
var COMPARE_PARTIAL_FLAG$5 = 1, COMPARE_UNORDERED_FLAG$3 = 2;
function equalArrays(array, other, bitmask, customizer, equalFunc, stack) {
  var isPartial = bitmask & COMPARE_PARTIAL_FLAG$5, arrLength = array.length, othLength = other.length;
  if (arrLength != othLength && !(isPartial && othLength > arrLength)) {
    return false;
  }
  var arrStacked = stack.get(array);
  var othStacked = stack.get(other);
  if (arrStacked && othStacked) {
    return arrStacked == other && othStacked == array;
  }
  var index = -1, result = true, seen = bitmask & COMPARE_UNORDERED_FLAG$3 ? new SetCache() : void 0;
  stack.set(array, other);
  stack.set(other, array);
  while (++index < arrLength) {
    var arrValue = array[index], othValue = other[index];
    if (customizer) {
      var compared = isPartial ? customizer(othValue, arrValue, index, other, array, stack) : customizer(arrValue, othValue, index, array, other, stack);
    }
    if (compared !== void 0) {
      if (compared) {
        continue;
      }
      result = false;
      break;
    }
    if (seen) {
      if (!arraySome(other, function(othValue2, othIndex) {
        if (!cacheHas(seen, othIndex) && (arrValue === othValue2 || equalFunc(arrValue, othValue2, bitmask, customizer, stack))) {
          return seen.push(othIndex);
        }
      })) {
        result = false;
        break;
      }
    } else if (!(arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) {
      result = false;
      break;
    }
  }
  stack["delete"](array);
  stack["delete"](other);
  return result;
}
function mapToArray(map) {
  var index = -1, result = Array(map.size);
  map.forEach(function(value, key) {
    result[++index] = [key, value];
  });
  return result;
}
function setToArray(set) {
  var index = -1, result = Array(set.size);
  set.forEach(function(value) {
    result[++index] = value;
  });
  return result;
}
var COMPARE_PARTIAL_FLAG$4 = 1, COMPARE_UNORDERED_FLAG$2 = 2;
var boolTag = "[object Boolean]", dateTag = "[object Date]", errorTag = "[object Error]", mapTag = "[object Map]", numberTag = "[object Number]", regexpTag = "[object RegExp]", setTag = "[object Set]", stringTag = "[object String]", symbolTag = "[object Symbol]";
var arrayBufferTag = "[object ArrayBuffer]", dataViewTag = "[object DataView]";
var symbolProto = Symbol$2 ? Symbol$2.prototype : void 0, symbolValueOf = symbolProto ? symbolProto.valueOf : void 0;
function equalByTag(object, other, tag, bitmask, customizer, equalFunc, stack) {
  switch (tag) {
    case dataViewTag:
      if (object.byteLength != other.byteLength || object.byteOffset != other.byteOffset) {
        return false;
      }
      object = object.buffer;
      other = other.buffer;
    case arrayBufferTag:
      if (object.byteLength != other.byteLength || !equalFunc(new Uint8Array$1(object), new Uint8Array$1(other))) {
        return false;
      }
      return true;
    case boolTag:
    case dateTag:
    case numberTag:
      return eq(+object, +other);
    case errorTag:
      return object.name == other.name && object.message == other.message;
    case regexpTag:
    case stringTag:
      return object == other + "";
    case mapTag:
      var convert = mapToArray;
    case setTag:
      var isPartial = bitmask & COMPARE_PARTIAL_FLAG$4;
      convert || (convert = setToArray);
      if (object.size != other.size && !isPartial) {
        return false;
      }
      var stacked = stack.get(object);
      if (stacked) {
        return stacked == other;
      }
      bitmask |= COMPARE_UNORDERED_FLAG$2;
      stack.set(object, other);
      var result = equalArrays(convert(object), convert(other), bitmask, customizer, equalFunc, stack);
      stack["delete"](object);
      return result;
    case symbolTag:
      if (symbolValueOf) {
        return symbolValueOf.call(object) == symbolValueOf.call(other);
      }
  }
  return false;
}
var COMPARE_PARTIAL_FLAG$3 = 1;
var objectProto$1 = Object.prototype;
var hasOwnProperty$1 = objectProto$1.hasOwnProperty;
function equalObjects(object, other, bitmask, customizer, equalFunc, stack) {
  var isPartial = bitmask & COMPARE_PARTIAL_FLAG$3, objProps = getAllKeys(object), objLength = objProps.length, othProps = getAllKeys(other), othLength = othProps.length;
  if (objLength != othLength && !isPartial) {
    return false;
  }
  var index = objLength;
  while (index--) {
    var key = objProps[index];
    if (!(isPartial ? key in other : hasOwnProperty$1.call(other, key))) {
      return false;
    }
  }
  var objStacked = stack.get(object);
  var othStacked = stack.get(other);
  if (objStacked && othStacked) {
    return objStacked == other && othStacked == object;
  }
  var result = true;
  stack.set(object, other);
  stack.set(other, object);
  var skipCtor = isPartial;
  while (++index < objLength) {
    key = objProps[index];
    var objValue = object[key], othValue = other[key];
    if (customizer) {
      var compared = isPartial ? customizer(othValue, objValue, key, other, object, stack) : customizer(objValue, othValue, key, object, other, stack);
    }
    if (!(compared === void 0 ? objValue === othValue || equalFunc(objValue, othValue, bitmask, customizer, stack) : compared)) {
      result = false;
      break;
    }
    skipCtor || (skipCtor = key == "constructor");
  }
  if (result && !skipCtor) {
    var objCtor = object.constructor, othCtor = other.constructor;
    if (objCtor != othCtor && ("constructor" in object && "constructor" in other) && !(typeof objCtor == "function" && objCtor instanceof objCtor && typeof othCtor == "function" && othCtor instanceof othCtor)) {
      result = false;
    }
  }
  stack["delete"](object);
  stack["delete"](other);
  return result;
}
var COMPARE_PARTIAL_FLAG$2 = 1;
var argsTag = "[object Arguments]", arrayTag = "[object Array]", objectTag = "[object Object]";
var objectProto = Object.prototype;
var hasOwnProperty = objectProto.hasOwnProperty;
function baseIsEqualDeep(object, other, bitmask, customizer, equalFunc, stack) {
  var objIsArr = isArray$1(object), othIsArr = isArray$1(other), objTag = objIsArr ? arrayTag : getTag$1(object), othTag = othIsArr ? arrayTag : getTag$1(other);
  objTag = objTag == argsTag ? objectTag : objTag;
  othTag = othTag == argsTag ? objectTag : othTag;
  var objIsObj = objTag == objectTag, othIsObj = othTag == objectTag, isSameTag = objTag == othTag;
  if (isSameTag && isBuffer$1(object)) {
    if (!isBuffer$1(other)) {
      return false;
    }
    objIsArr = true;
    objIsObj = false;
  }
  if (isSameTag && !objIsObj) {
    stack || (stack = new Stack());
    return objIsArr || isTypedArray$1(object) ? equalArrays(object, other, bitmask, customizer, equalFunc, stack) : equalByTag(object, other, objTag, bitmask, customizer, equalFunc, stack);
  }
  if (!(bitmask & COMPARE_PARTIAL_FLAG$2)) {
    var objIsWrapped = objIsObj && hasOwnProperty.call(object, "__wrapped__"), othIsWrapped = othIsObj && hasOwnProperty.call(other, "__wrapped__");
    if (objIsWrapped || othIsWrapped) {
      var objUnwrapped = objIsWrapped ? object.value() : object, othUnwrapped = othIsWrapped ? other.value() : other;
      stack || (stack = new Stack());
      return equalFunc(objUnwrapped, othUnwrapped, bitmask, customizer, stack);
    }
  }
  if (!isSameTag) {
    return false;
  }
  stack || (stack = new Stack());
  return equalObjects(object, other, bitmask, customizer, equalFunc, stack);
}
function baseIsEqual(value, other, bitmask, customizer, stack) {
  if (value === other) {
    return true;
  }
  if (value == null || other == null || !isObjectLike(value) && !isObjectLike(other)) {
    return value !== value && other !== other;
  }
  return baseIsEqualDeep(value, other, bitmask, customizer, baseIsEqual, stack);
}
var COMPARE_PARTIAL_FLAG$1 = 1, COMPARE_UNORDERED_FLAG$1 = 2;
function baseIsMatch(object, source, matchData, customizer) {
  var index = matchData.length, length = index, noCustomizer = !customizer;
  if (object == null) {
    return !length;
  }
  object = Object(object);
  while (index--) {
    var data = matchData[index];
    if (noCustomizer && data[2] ? data[1] !== object[data[0]] : !(data[0] in object)) {
      return false;
    }
  }
  while (++index < length) {
    data = matchData[index];
    var key = data[0], objValue = object[key], srcValue = data[1];
    if (noCustomizer && data[2]) {
      if (objValue === void 0 && !(key in object)) {
        return false;
      }
    } else {
      var stack = new Stack();
      if (customizer) {
        var result = customizer(objValue, srcValue, key, object, source, stack);
      }
      if (!(result === void 0 ? baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG$1 | COMPARE_UNORDERED_FLAG$1, customizer, stack) : result)) {
        return false;
      }
    }
  }
  return true;
}
function isStrictComparable(value) {
  return value === value && !isObject(value);
}
function getMatchData(object) {
  var result = keys(object), length = result.length;
  while (length--) {
    var key = result[length], value = object[key];
    result[length] = [key, value, isStrictComparable(value)];
  }
  return result;
}
function matchesStrictComparable(key, srcValue) {
  return function(object) {
    if (object == null) {
      return false;
    }
    return object[key] === srcValue && (srcValue !== void 0 || key in Object(object));
  };
}
function baseMatches(source) {
  var matchData = getMatchData(source);
  if (matchData.length == 1 && matchData[0][2]) {
    return matchesStrictComparable(matchData[0][0], matchData[0][1]);
  }
  return function(object) {
    return object === source || baseIsMatch(object, source, matchData);
  };
}
function baseHasIn(object, key) {
  return object != null && key in Object(object);
}
function hasPath(object, path, hasFunc) {
  path = castPath(path, object);
  var index = -1, length = path.length, result = false;
  while (++index < length) {
    var key = toKey(path[index]);
    if (!(result = object != null && hasFunc(object, key))) {
      break;
    }
    object = object[key];
  }
  if (result || ++index != length) {
    return result;
  }
  length = object == null ? 0 : object.length;
  return !!length && isLength(length) && isIndex(key, length) && (isArray$1(object) || isArguments$1(object));
}
function hasIn(object, path) {
  return object != null && hasPath(object, path, baseHasIn);
}
var COMPARE_PARTIAL_FLAG = 1, COMPARE_UNORDERED_FLAG = 2;
function baseMatchesProperty(path, srcValue) {
  if (isKey(path) && isStrictComparable(srcValue)) {
    return matchesStrictComparable(toKey(path), srcValue);
  }
  return function(object) {
    var objValue = get(object, path);
    return objValue === void 0 && objValue === srcValue ? hasIn(object, path) : baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG);
  };
}
function baseProperty(key) {
  return function(object) {
    return object == null ? void 0 : object[key];
  };
}
function basePropertyDeep(path) {
  return function(object) {
    return baseGet(object, path);
  };
}
function property(path) {
  return isKey(path) ? baseProperty(toKey(path)) : basePropertyDeep(path);
}
function baseIteratee(value) {
  if (typeof value == "function") {
    return value;
  }
  if (value == null) {
    return identity;
  }
  if (typeof value == "object") {
    return isArray$1(value) ? baseMatchesProperty(value[0], value[1]) : baseMatches(value);
  }
  return property(value);
}
var now = function() {
  return root$1.Date.now();
};
const now$1 = now;
var FUNC_ERROR_TEXT$1 = "Expected a function";
var nativeMax$1 = Math.max, nativeMin$1 = Math.min;
function debounce(func, wait, options) {
  var lastArgs, lastThis, maxWait, result, timerId, lastCallTime, lastInvokeTime = 0, leading = false, maxing = false, trailing = true;
  if (typeof func != "function") {
    throw new TypeError(FUNC_ERROR_TEXT$1);
  }
  wait = toNumber(wait) || 0;
  if (isObject(options)) {
    leading = !!options.leading;
    maxing = "maxWait" in options;
    maxWait = maxing ? nativeMax$1(toNumber(options.maxWait) || 0, wait) : maxWait;
    trailing = "trailing" in options ? !!options.trailing : trailing;
  }
  function invokeFunc(time) {
    var args = lastArgs, thisArg = lastThis;
    lastArgs = lastThis = void 0;
    lastInvokeTime = time;
    result = func.apply(thisArg, args);
    return result;
  }
  function leadingEdge(time) {
    lastInvokeTime = time;
    timerId = setTimeout(timerExpired, wait);
    return leading ? invokeFunc(time) : result;
  }
  function remainingWait(time) {
    var timeSinceLastCall = time - lastCallTime, timeSinceLastInvoke = time - lastInvokeTime, timeWaiting = wait - timeSinceLastCall;
    return maxing ? nativeMin$1(timeWaiting, maxWait - timeSinceLastInvoke) : timeWaiting;
  }
  function shouldInvoke(time) {
    var timeSinceLastCall = time - lastCallTime, timeSinceLastInvoke = time - lastInvokeTime;
    return lastCallTime === void 0 || timeSinceLastCall >= wait || timeSinceLastCall < 0 || maxing && timeSinceLastInvoke >= maxWait;
  }
  function timerExpired() {
    var time = now$1();
    if (shouldInvoke(time)) {
      return trailingEdge(time);
    }
    timerId = setTimeout(timerExpired, remainingWait(time));
  }
  function trailingEdge(time) {
    timerId = void 0;
    if (trailing && lastArgs) {
      return invokeFunc(time);
    }
    lastArgs = lastThis = void 0;
    return result;
  }
  function cancel() {
    if (timerId !== void 0) {
      clearTimeout(timerId);
    }
    lastInvokeTime = 0;
    lastArgs = lastCallTime = lastThis = timerId = void 0;
  }
  function flush() {
    return timerId === void 0 ? result : trailingEdge(now$1());
  }
  function debounced() {
    var time = now$1(), isInvoking = shouldInvoke(time);
    lastArgs = arguments;
    lastThis = this;
    lastCallTime = time;
    if (isInvoking) {
      if (timerId === void 0) {
        return leadingEdge(lastCallTime);
      }
      if (maxing) {
        clearTimeout(timerId);
        timerId = setTimeout(timerExpired, wait);
        return invokeFunc(lastCallTime);
      }
    }
    if (timerId === void 0) {
      timerId = setTimeout(timerExpired, wait);
    }
    return result;
  }
  debounced.cancel = cancel;
  debounced.flush = flush;
  return debounced;
}
var nativeMax = Math.max, nativeMin = Math.min;
function findLastIndex(array, predicate, fromIndex) {
  var length = array == null ? 0 : array.length;
  if (!length) {
    return -1;
  }
  var index = length - 1;
  if (fromIndex !== void 0) {
    index = toInteger(fromIndex);
    index = fromIndex < 0 ? nativeMax(length + index, 0) : nativeMin(index, length - 1);
  }
  return baseFindIndex(array, baseIteratee(predicate), index, true);
}
var FUNC_ERROR_TEXT = "Expected a function";
function throttle(func, wait, options) {
  var leading = true, trailing = true;
  if (typeof func != "function") {
    throw new TypeError(FUNC_ERROR_TEXT);
  }
  if (isObject(options)) {
    leading = "leading" in options ? !!options.leading : leading;
    trailing = "trailing" in options ? !!options.trailing : trailing;
  }
  return debounce(func, wait, {
    "leading": leading,
    "maxWait": wait,
    "trailing": trailing
  });
}
const promoter1 = "" + new URL("jitianwusi.png", import.meta.url).href;
const promoter2 = "" + new URL("yingbaoli.png", import.meta.url).href;
const promoter3 = "" + new URL("zhuzhong.jpg", import.meta.url).href;
const promoter4 = "" + new URL("buchuan.jpg", import.meta.url).href;
const promoter5 = "" + new URL("liuyinghuan.jpg", import.meta.url).href;
const promoter6 = "" + new URL("zhengqi.jpg", import.meta.url).href;
const promoter7 = "" + new URL("chuankou.jpg", import.meta.url).href;
const promoter8 = "" + new URL("yiteng.jpg", import.meta.url).href;
const empty = "";
const topic1 = "" + new URL("bigscreen.png", import.meta.url).href;
const topic2 = "" + new URL("erji.png", import.meta.url).href;
const topic3 = "";
const __$_require_708bf2b8__ = "" + new URL("erji.jpg", import.meta.url).href;
const __$_require_ab9d7468__ = "" + new URL("logo-border.jpg", import.meta.url).href;
const __$_require_d2960e8a__ = "" + new URL("jiaoyu.jpg", import.meta.url).href;
const __$_require_03d2d656__ = "";
const __$_require_46352904__ = "" + new URL("yinjiang-erji.jpg", import.meta.url).href;
const __$_require_12cb2aee__ = "" + new URL("shoubing.jpg", import.meta.url).href;
const __$_require_43f4e04c__ = "" + new URL("pingwei-erji.png", import.meta.url).href;
const __$_require_34857899__ = "" + new URL("kv.jpg", import.meta.url).href;
const __$_require_6a406566__ = "";
const __$_require_960578ba__ = "";
const __$_require_3d25734c__ = "";
const __$_require_beda32a0__ = "";
const __$_require_8c93c8c0__ = "";
const __$_require_50377f8c__ = "";
const __$_require_9b5c51ce__ = "" + new URL("logo.jpg", import.meta.url).href;
const __$_require_4b3ae194__ = "" + new URL("orange.jpg", import.meta.url).href;
const __$_require_21390e3b__ = "";
const __$_require_22ede6da__ = "";
const __$_require_24a2bf79__ = "";
const __$_require_26579818__ = "";
const __$_require_280c70b7__ = "";
const __$_require_1ebe405a__ = "" + new URL("contact-music.png", import.meta.url).href;
var render = function() {
  var _vm = this;
  var _h = _vm.$createElement;
  var _c = _vm._self._c || _h;
  return _c("div", {
    staticClass: "shjd-wrapper tw-relative"
  }, [_vm._m(0), _c("div", {
    staticClass: "nav-bar tw-text-center tw-bg-neutral-100 tw-bg-opacity-90 tw-border tw-border-slate-500 tw-overflow-x-auto"
  }, [_c("ul", {
    staticClass: "tw-flex tw-mx-auto tw-w-[70%]"
  }, _vm._l(_vm.navList, function(item, index) {
    return _c("li", {
      key: index,
      staticClass: "tw-flex-1 tw-text-center lg:tw-text-xl md:tw-text-[16px] tw-text-gray-700 tw-whitespace-nowrap tw-cursor-pointer",
      class: [item.anchorId === _vm.activeAnchorId ? "active-nav-btn" : "", "tw-p-2"]
    }, [_c("a", {
      staticClass: "tw-inline-block tw-w-full tw-py-3 regular",
      attrs: {
        "href": `#anchor-${item.anchorId}`
      },
      on: {
        "click": function($event) {
          $event.preventDefault();
          return _vm.onGotoAnchor(item.anchorId);
        }
      }
    }, [_vm._v(" " + _vm._s(item.title) + " ")])]);
  }), 0)]), _c("div", {
    staticClass: "tw-relative tw-pt-28 tw-pb-12 tw-bg-white",
    attrs: {
      "data-anchor": "2",
      "id": "anchor-2"
    }
  }, [_c("img", {
    staticClass: "tw-absolute tw-w-[9vw] tw-left-[12vw] tw-top-12 movedown",
    attrs: {
      "src": __$_require_708bf2b8__
    }
  }), _c("img", {
    staticClass: "tw-absolute tw-right-[105px] -tw-top-[10px] tw-w-2/5",
    attrs: {
      "src": __$_require_ab9d7468__,
      "alt": "logo-border"
    }
  }), _c("div", {
    staticClass: "baoming-btn tw-relative lg:tw-w-[15%] md:tw-w-[20%] tw-cursor-pointer tw-mx-auto tw-py-4 tw-text-zinc-800 tw-rounded-3xl lg:tw-text-4xl md:tw-text-[24px] tw-font-bold tw-text-center bold"
  }, [_vm._v(" 点击报名 ")]), _c("ul", {
    staticClass: "tw-relative tw-w-1/2 tw-mx-auto tw-my-12 tw-flex tw-flex-wrap"
  }, _vm._l(_vm.downloadList, function(item) {
    return _c("li", {
      key: item.id,
      staticClass: "tw-w-1/2 tw-text-center tw-cursor-pointer tw-text-zinc-700 lg:tw-text-xl md:tw-text-[16px] tw-my-2 tw-underline tw-underline-offset-4 regular",
      class: item.id === "4" ? "tw-tracking-normal" : "tw-tracking-widest"
    }, [_vm._v(" " + _vm._s(item.name) + " ")]);
  }), 0)]), _c("div", {
    staticClass: "tw-relative tw-cursor-pointer",
    on: {
      "click": _vm.goEdu
    }
  }, [_c("img", {
    attrs: {
      "src": __$_require_d2960e8a__,
      "alt": "edu"
    }
  })]), _c("div", {
    staticClass: "tw-pt-12 tw-bg-white",
    attrs: {
      "data-anchor": "3"
    }
  }, [_vm._m(1), _vm._m(2), _vm._m(3), _c("ul", {
    staticClass: "tw-flex tw-justify-center lg:tw-w-3/4 md:tw-w-[94%] tw-mx-auto lg:tw-py-20 md:tw-py-12"
  }, _vm._l(_vm.promoters, function(item) {
    return _c("li", {
      key: item.id,
      staticClass: "tw-flex-1 tw-text-center"
    }, [_c("img", {
      staticClass: "lg:tw-w-[10vw] md:tw-w-[15vw] tw-rounded-[50%] tw-mx-auto tw-mb-8",
      attrs: {
        "src": item.url,
        "alt": "发起人"
      }
    }), _c("h4", {
      staticClass: "lg:tw-text-xl md:tw-text-[16px] bold tw-leading-5"
    }, [_vm._v(" " + _vm._s(item.promoter) + " ")]), _c("h4", {
      staticClass: "lg:tw-text-xl md:tw-text-[16px] regular"
    }, [_vm._v(" " + _vm._s(item.name) + " ")]), _c("p", {
      staticClass: "lg:tw-text-base md:tw-text-[14px] regular regular"
    }, [_vm._v(" " + _vm._s(item.department) + " ")]), _c("p", {
      staticClass: "lg:tw-text-base md:tw-text-[14px] regular regular"
    }, [_vm._v(" " + _vm._s(item.position) + " ")])]);
  }), 0)]), _c("div", {
    staticClass: "tw-pt-12 lg:tw-pt-20",
    attrs: {
      "data-anchor": "4",
      "id": "anchor-4"
    }
  }, [_vm._m(4), _c("ul", {
    staticClass: "tw-flex tw-justify-center tw-w-3/4 tw-mx-auto lg:tw-py-20 md:tw-py-12"
  }, _vm._l(_vm.arranges, function(item) {
    return _c("li", {
      key: item.id,
      staticClass: "tw-flex-1 tw-text-center"
    }, [_c("h4", {
      staticClass: "tw-text-center"
    }, [_c("span", {
      staticClass: "tw-relative tw-inline-block tw-mx-auto lg:tw-text-2xl md:tw-text-[16px] bold"
    }, [_vm._v(" " + _vm._s(item.title) + " "), item.id === 2 ? _c("span", {
      staticClass: "tw-absolute lg:tw-text-base md:tw-text-[14px] tw-top-1 -tw-right-6 light"
    }, [_vm._v(" 2/3 ")]) : _vm._e()])]), _c("h4", {
      staticClass: "lg:tw-text-2xl md:tw-text-[16px] bold"
    }, [_vm._v(" " + _vm._s(item.subtitle) + " ")]), _c("p", {
      staticClass: "lg:tw-text-base md:tw-text-[12px] tw-mt-4 light"
    }, [_vm._v(" " + _vm._s(item.date) + " ")]), _c("div", {
      staticClass: "tw-relative"
    }, [item.id !== 6 ? _c("div", {
      staticClass: "tw-w-full tw-absolute tw-h-[1px] tw-left-1/2 tw-top-1/2 tw-bg-slate-600"
    }) : _vm._e(), _c("div", {
      staticClass: "tw-w-[20px] tw-relative tw-h-[20px] tw-mx-auto tw-mt-4 tw-rounded-[50%] tw-bg-green-500 tw-border tw-border-slate-600"
    })])]);
  }), 0)]), _c("div", {
    staticClass: "tw-pt-4",
    attrs: {
      "data-anchor": "5",
      "id": "anchor-5"
    }
  }, [_c("h4", {
    staticClass: "tw-text-5xl bold"
  }, [_vm._v("活动话题")]), _c("ul", {
    staticClass: "tw-flex tw-justify-between lg:tw-w-3/4 md:tw-w-[94%] tw-mx-auto lg:tw-py-20 md:tw-py-12"
  }, _vm._l(_vm.subjects, function(item) {
    return _c("li", {
      key: item.id,
      staticClass: "tw-w-[29%] lg:tw-px-4 md:tw-px-2 lg:tw-py-8 md:tw-py-4 tw-text-center topic-bg"
    }, [_c("h4", {
      staticClass: "tw-pt-6 lg:tw-text-2xl md:tw-text-[18px] bold tw-leading-8"
    }, [_vm._v(" " + _vm._s(item.title) + " ")]), _c("h4", {
      staticClass: "lg:tw-text-base md:tw-text-[14px] bold tw-text-zinc-600"
    }, [_vm._v(" " + _vm._s(item.subtitle) + " ")]), _c("h4", {
      staticClass: "lg:tw-text-base md:tw-text-[14px] bold tw-text-zinc-600"
    }, [_vm._v(" " + _vm._s(item.thirdtitle) + " ")]), _c("img", {
      staticClass: "tw-py-4",
      attrs: {
        "src": item.img,
        "alt": ""
      }
    }), _vm._l(item.subject, function(temp, index) {
      return _c("div", {
        key: index,
        staticClass: "tw-mt-4 tw-text-left"
      }, [_c("p", {
        staticClass: "lg:tw-text-base md:tw-text-[14px] bold"
      }, [_c("span", {
        staticClass: "tw-text-orange-500"
      }, [_vm._v("#")]), _vm._v(" 话题 "), _c("span", [_vm._v(_vm._s(index === 0 ? "A" : "B"))])]), _c("p", {
        staticClass: "lg:tw-text-base md:tw-text-[14px] bold"
      }, [_vm._v(" " + _vm._s(temp.title) + " ")]), _c("p", {
        staticClass: "lg:tw-text-base md:tw-text-[14px] regular tw-text-zinc-700 regular",
        domProps: {
          "innerHTML": _vm._s(temp.desc)
        }
      })]);
    })], 2);
  }), 0)]), _vm._m(5), _c("div", {
    staticClass: "tw-bg-white"
  }, [_c("h4", {
    staticClass: "tw-text-5xl bold"
  }, [_vm._v("期待作品")]), _c("ul", {
    staticClass: "tw-flex tw-justify-between lg:tw-w-3/4 md:tw-w-[94%] tw-mx-auto lg:tw-py-16 md:tw-py-10"
  }, _vm._l(_vm.works, function(item, index) {
    return _c("li", {
      key: index,
      staticClass: "tw-w-[31%] tw-text-center tw-border tw-border-slate-900 global-bg"
    }, [_c("div", {
      staticClass: "tw-relative tw-pt-6 tw-pb-4 tw-px-2 tw-border tw-border-slate-900 -tw-left-[7px] -tw-top-[7px] global-bg"
    }, [_c("h4", {
      staticClass: "lg:tw-text-2xl md:tw-text-[16px] bold tw-py-4"
    }, [_vm._v(" " + _vm._s(item.title) + " ")]), _c("p", {
      staticClass: "lg:tw-text-lg md:tw-text-[14px] regular tw-text-zinc-700",
      class: index !== 1 ? "md:tw-pb-5 lg:tw-pb-0" : "",
      domProps: {
        "innerHTML": _vm._s(item.desc)
      }
    })])]);
  }), 0)]), _c("div", {
    staticClass: "tw-bg-white"
  }, [_c("div", {
    staticClass: "lg:tw-w-[70%] md:tw-w-[90%] tw-mx-auto"
  }, [_c("h4", {
    staticClass: "tw-text-5xl bold"
  }, [_vm._v("奖项设置")]), _c("div", {
    staticClass: "tw-relative tw-mt-12 tw-py-6 tw-pl-12 tw-pr-24 tw-border tw-border-slate-900 tw-rounded-e-full"
  }, [_c("img", {
    staticClass: "tw-absolute tw-w-[12%] tw-right-8 tw-bottom-0 movedown",
    attrs: {
      "src": __$_require_03d2d656__,
      "alt": "music"
    }
  }), _c("ul", {
    staticClass: "tw-relative tw-flex tw-justify-between"
  }, _vm._l(_vm.prices, function(item) {
    return _c("li", {
      key: item.title,
      staticClass: "tw-w-[30%] tw-p-2 tw-text-center"
    }, [_vm._m(6, true), _c("h4", {
      staticClass: "tw-text-xl bold"
    }, [_vm._v(_vm._s(item.title))]), _vm._l(item.data, function(temp, index) {
      return _c("p", {
        key: index,
        staticClass: "regular tw-text-zinc-800 lg:tw-text-base md:tw-text-[14px]",
        class: index === 0 ? "tw-border tw-border-zinc-500 bold" : ""
      }, [_vm._v(" " + _vm._s(temp) + " ")]);
    })], 2);
  }), 0), _c("h4", {
    staticClass: "tw-text-xl bold tw-pt-12"
  }, [_vm._v("金, 银，铜奖其他奖项")]), _c("ul", {
    staticClass: "tw-relative tw-flex tw-justify-between"
  }, _vm._l(_vm.otherPrice, function(item) {
    return _c("li", {
      key: item.title,
      staticClass: "tw-w-[30%] tw-p-2 tw-text-center"
    }, [_c("h4", {
      staticClass: "tw-inline-block tw-border tw-border-zinc-500 tw-px-2 bold lg:tw-text-base md:tw-text-[14px]"
    }, [_vm._v(" " + _vm._s(item.title) + " ")]), _vm._l(item.data, function(temp, index) {
      return _c("p", {
        key: index,
        staticClass: "regular tw-text-zinc-800 lg:tw-text-base md:tw-text-[14px]"
      }, [_vm._v(" " + _vm._s(temp) + " ")]);
    })], 2);
  }), 0)]), _c("div", {
    staticClass: "tw-flex tw-mt-16 tw-justify-between tw-pb-20"
  }, [_c("div", {
    staticClass: "tw-relative lg:tw-w-[43%] md:tw-w-[42%] tw-p-6 tw-border tw-border-slate-900 tw-rounded-e-full"
  }, [_c("img", {
    staticClass: "tw-absolute tw-w-1/4 tw-right-12 tw-bottom-0 movedown",
    attrs: {
      "src": __$_require_46352904__,
      "alt": "yinjiang-erji"
    }
  }), _vm._m(7), _c("div", {
    staticClass: "tw-flex tw-pt-8 tw-justify-between"
  }, [_c("ul", _vm._l(_vm.qianli, function(item, index) {
    return _c("li", {
      key: index,
      staticClass: "lg:tw-text-lg md:tw-text-[16px] light lg:tw-leading-8",
      class: index === 0 ? "tw-pb-12" : ""
    }, [_c("h4", {
      staticClass: "tw-inline-block tw-border tw-border-zinc-500 tw-px-2 bold lg:tw-text-base md:tw-text-[14px]"
    }, [_vm._v(" " + _vm._s(item.title) + " ")]), _vm._l(item.data, function(temp, index2) {
      return _c("p", {
        key: index2,
        staticClass: "regular tw-text-zinc-800 lg:tw-text-base md:tw-text-[14px]"
      }, [_vm._v(" " + _vm._s(temp) + " ")]);
    })], 2);
  }), 0), _c("ul", _vm._l(_vm.qianli1, function(item, index) {
    return _c("li", {
      key: index,
      staticClass: "lg:tw-text-lg md:tw-text-[16px] light lg:tw-leading-8",
      class: index === 0 ? "tw-pb-12" : ""
    }, [_c("h4", {
      staticClass: "tw-inline-block tw-border tw-border-zinc-500 tw-px-2 bold lg:tw-text-base md:tw-text-[14px]"
    }, [_vm._v(" " + _vm._s(item.title) + " ")]), _vm._l(item.data, function(temp, index2) {
      return _c("p", {
        key: index2,
        staticClass: "regular tw-text-zinc-800 lg:tw-text-base md:tw-text-[14px]"
      }, [_vm._v(" " + _vm._s(temp) + " ")]);
    })], 2);
  }), 0)])]), _c("div", {
    staticClass: "lg:tw-w-[43%] md:tw-w-[42%] tw-p-6 tw-relative tw-border tw-border-slate-900 tw-rounded-e-full"
  }, [_c("img", {
    staticClass: "tw-absolute tw-w-1/4 tw-right-12 tw-bottom-0 moveup",
    attrs: {
      "src": __$_require_12cb2aee__,
      "alt": "shoubing"
    }
  }), _vm._m(8), _c("div", {
    staticClass: "tw-flex tw-pt-8 tw-justify-between"
  }, [_c("ul", _vm._l(_vm.ruwei, function(item, index) {
    return _c("li", {
      key: index,
      staticClass: "lg:tw-text-lg md:tw-text-[16px] light lg:tw-leading-8",
      class: index === 0 ? "tw-pb-12" : ""
    }, [_c("h4", {
      staticClass: "tw-inline-block tw-border tw-border-zinc-500 tw-px-2 bold lg:tw-text-base md:tw-text-[14px]"
    }, [_vm._v(" " + _vm._s(item.title) + " ")]), _vm._l(item.data, function(temp, index2) {
      return _c("p", {
        key: index2,
        staticClass: "regular tw-text-zinc-800 lg:tw-text-base md:tw-text-[14px]"
      }, [_vm._v(" " + _vm._s(temp) + " ")]);
    })], 2);
  }), 0)])])])])]), _c("div", {
    staticClass: "tw-relative lg:tw-pt-20 md:tw-pt-12",
    attrs: {
      "data-anchor": "6",
      "id": "anchor-6"
    }
  }, [_c("img", {
    staticClass: "tw-absolute tw-w-[12vw] tw-right-[14%] -tw-bottom-12 movedown",
    attrs: {
      "src": __$_require_43f4e04c__,
      "alt": "pingwei-erji"
    }
  }), _c("h4", {
    staticClass: "tw-text-5xl bold"
  }, [_vm._v("评委团")]), _vm._m(9), _c("div", {
    staticClass: "lg:tw-w-[80%] md:tw-w-[94%] tw-mx-auto tw-flex tw-flex-wrap tw-justify-between lg:tw-pt-20 md:tw-pt-12"
  }, _vm._l(_vm.judges, function(item) {
    return _c("ul", {
      key: item.id,
      staticClass: "tw-flex tw-w-[33%] tw-justify-center tw-items-center tw-mb-12"
    }, [_c("li", {
      staticClass: "lg:tw-w-[10vw] md:tw-w-[15vw]"
    }, [item.id !== 6 && item.id !== 9 ? _c("img", {
      staticClass: "tw-w-full tw-rounded-[50%] tw-mx-auto",
      attrs: {
        "src": item.promoter,
        "alt": "发起人"
      }
    }) : _vm._e()]), _c("li", {
      staticClass: "tw-ml-2"
    }, [_c("p", {
      staticClass: "lg:tw-text-xl md:tw-text-[16px] bold tw-text-zinc-600"
    }, [_vm._v(" " + _vm._s(item.name) + " ")]), _c("p", {
      staticClass: "lg:tw-text-base md:tw-text-[14px] regular tw-text-zinc-600"
    }, [_vm._v(" " + _vm._s(item.department) + " ")]), _c("p", {
      staticClass: "lg:tw-text-base md:tw-text-[14px] regular tw-text-zinc-600"
    }, [_vm._v(" " + _vm._s(item.position) + " ")])])]);
  }), 0)]), _vm._m(10), _vm._m(11)]);
};
var staticRenderFns = [function() {
  var _vm = this;
  var _h = _vm.$createElement;
  var _c = _vm._self._c || _h;
  return _c("div", {
    attrs: {
      "data-anchor": "1",
      "id": "anchor-1"
    }
  }, [_c("div", {
    staticClass: "tw-relative sound-bar-kv tw-w-full"
  }, [_c("img", {
    staticClass: "tw-w-full",
    attrs: {
      "src": __$_require_34857899__,
      "alt": "KV"
    }
  }), _c("img", {
    staticClass: "tw-absolute tw-w-[11vw] tw-left-[28%] tw-bottom-[21%] moveup",
    attrs: {
      "src": __$_require_6a406566__,
      "alt": "kv-icon"
    }
  }), _c("img", {
    staticClass: "tw-absolute tw-w-[12vw] tw-left-[53%] tw-top-[43%] movedown",
    attrs: {
      "src": __$_require_960578ba__,
      "alt": "kv-icon"
    }
  }), _c("img", {
    staticClass: "tw-absolute tw-w-[10vw] tw-right-[23%] tw-bottom-[18%] moveup",
    attrs: {
      "src": __$_require_3d25734c__,
      "alt": "kv-icon"
    }
  }), _c("img", {
    staticClass: "tw-absolute tw-w-[8vw] tw-right-[15%] tw-top-1/2 movedown",
    attrs: {
      "src": __$_require_beda32a0__,
      "alt": "kv-icon"
    }
  }), _c("img", {
    staticClass: "tw-absolute tw-w-[8vw] tw-right-[5%] tw-bottom-[8%] moveup",
    attrs: {
      "src": __$_require_8c93c8c0__,
      "alt": "kv-icon"
    }
  })])]);
}, function() {
  var _vm = this;
  var _h = _vm.$createElement;
  var _c = _vm._self._c || _h;
  return _c("div", {
    staticClass: "tw-w-[76%] tw-relative tw-mx-auto tw-mt-6 tw-text-5xl bold"
  }, [_c("img", {
    staticClass: "tw-absolute tw-w-[12vw] tw-left-1/2 tw-bottom-0",
    attrs: {
      "src": __$_require_50377f8c__
    }
  }), _c("h4", {
    staticClass: "tw-relative tw-text-left bold"
  }, [_vm._v(" “企”梦索尼，携梦与索尼同行 ")]), _c("h4", {
    staticClass: "tw-relative tw-text-left tw-text-5xl bold"
  }, [_vm._v(" Start Your Dream With Sony ")])]);
}, function() {
  var _vm = this;
  var _h = _vm.$createElement;
  var _c = _vm._self._c || _h;
  return _c("div", {
    staticClass: "tw-w-3/4 tw-mx-auto tw-mt-12 tw-text-center tw-text-2xl"
  }, [_c("img", {
    staticClass: "tw-mx-auto tw-mb-12",
    attrs: {
      "src": "https://fakeimg.pl/1200x500",
      "alt": "首页"
    }
  }), _c("h4", {
    staticClass: "lg:tw-text-2xl md:tw-text-[16px] tw-pb-2 bold"
  }, [_vm._v(" 索尼于1946年，为了建立一个轻松自由愉快的理想工厂而成立 ")]), _c("p", {
    staticClass: "lg:tw-text-2xl md:tw-text-[16px] light"
  }, [_vm._v(" 秉承着用创意和科技的力量感动世界的企业宗旨， ")]), _c("p", {
    staticClass: "lg:tw-text-2xl md:tw-text-[16px] light"
  }, [_vm._v(" 在过去数十年中，索尼在游戏，音乐，影视消费类电子，动画等行业均有业务； ")]), _c("p", {
    staticClass: "lg:tw-text-2xl md:tw-text-[16px] light"
  }, [_vm._v(" 也包括其他新型的业务如动作捕捉系统Mocopi，空间现实显示屏等等 ")]), _c("img", {
    staticClass: "tw-w-4/5 tw-mx-auto tw-my-6",
    attrs: {
      "src": __$_require_9b5c51ce__,
      "alt": "logo"
    }
  }), _c("p", {
    staticClass: "lg:tw-text-2xl md:tw-text-[16px] light"
  }, [_vm._v(" 索尼相信，年轻人在未来将会是引领潮流的重要群体之一 ")]), _c("p", {
    staticClass: "lg:tw-text-2xl md:tw-text-[16px] tw-mb-8 light"
  }, [_vm._v(" 因此我们希望索尼的产品/服务在未来可以更加契合当代年轻人的喜好与风格 ")])]);
}, function() {
  var _vm = this;
  var _h = _vm.$createElement;
  var _c = _vm._self._c || _h;
  return _c("div", {
    staticClass: "tw-relative global-bg tw-overflow-hidden"
  }, [_c("div", {
    staticClass: "tw-w-[76%] tw-mx-auto lg:tw-pt-16 lg:tw-pb-32 md:tw-pt-8 md:tw-pb-16"
  }, [_c("h4", {
    staticClass: "lg:tw-text-2xl md:tw-text-[24px] tw-text-left bold"
  }, [_vm._v(' 索尼 未来畅想 "Sony & The Future" ')]), _c("h4", {
    staticClass: "lg:tw-text-2xl md:tw-text-[24px] tw-text-left bold"
  }, [_vm._v(" 大学生创想大赛 ")]), _c("p", {
    staticClass: "lg:tw-text-lg md:tw-text-[14px] tw-pt-4 regular"
  }, [_vm._v(" 期待能帮助拥有创意和憧憬的你，带着梦想和好奇心去开拓未来 ")]), _c("p", {
    staticClass: "lg:tw-text-lg md:tw-text-[14px] regular"
  }, [_vm._v(" 年轻创作者们，请展示自己的创想与对未来的思考 ")]), _c("p", {
    staticClass: "lg:tw-text-lg md:tw-text-[14px] regular"
  }, [_vm._v(" 让我们携手一起去体会科技与创想的魅力 ")]), _c("img", {
    staticClass: "tw-absolute tw-w-[36%] tw-left-1/2 tw-bottom-0",
    attrs: {
      "src": __$_require_4b3ae194__,
      "alt": "orange"
    }
  })])]);
}, function() {
  var _vm = this;
  var _h = _vm.$createElement;
  var _c = _vm._self._c || _h;
  return _c("h4", {
    staticClass: "tw-text-center"
  }, [_c("span", {
    staticClass: "tw-relative tw-inline-block tw-mx-auto tw-text-5xl bold"
  }, [_vm._v(" 活动安排 "), _c("span", {
    staticClass: "tw-absolute tw-text-xl tw-top-0 -tw-right-3 light"
  }, [_vm._v(" 1 ")])])]);
}, function() {
  var _vm = this;
  var _h = _vm.$createElement;
  var _c = _vm._self._c || _h;
  return _c("div", {
    staticClass: "lg:tw-pt-20 md:tw-pt-12 tw-bg-white"
  }, [_c("h4", {
    staticClass: "tw-text-center"
  }, [_c("span", {
    staticClass: "tw-relative tw-inline-block tw-mx-auto tw-text-5xl bold"
  }, [_vm._v(" 评审标准 "), _c("span", {
    staticClass: "tw-absolute tw-text-xl tw-top-0 -tw-right-3 light"
  }, [_vm._v(" 4 ")])])]), _c("div", {
    staticClass: "tw-flex tw-justify-between lg:tw-w-3/4 tw-mx-auto lg:tw-py-20 md:tw-py-10"
  }, [_c("img", {
    staticClass: "tw-w-[18%]",
    attrs: {
      "src": __$_require_21390e3b__,
      "alt": "ping"
    }
  }), _c("img", {
    staticClass: "tw-w-[18%]",
    attrs: {
      "src": __$_require_22ede6da__,
      "alt": "ping"
    }
  }), _c("img", {
    staticClass: "tw-w-[18%]",
    attrs: {
      "src": __$_require_24a2bf79__,
      "alt": "ping"
    }
  }), _c("img", {
    staticClass: "tw-w-[18%]",
    attrs: {
      "src": __$_require_26579818__,
      "alt": "ping"
    }
  }), _c("img", {
    staticClass: "tw-w-[18%]",
    attrs: {
      "src": __$_require_280c70b7__,
      "alt": "ping"
    }
  })])]);
}, function() {
  var _vm = this;
  var _h = _vm.$createElement;
  var _c = _vm._self._c || _h;
  return _c("div", {
    staticClass: "tw-border tw-inline-block tw-rounded-full tw-text-center tw-py-2 tw-px-4 tw-border-slate-900 bold tw-bg-green-500"
  }, [_c("p", {
    staticClass: "lg:tw-text-xl md:tw-text-[18px] lg:tw-leading-6 md:tw-leading-4 bold"
  }, [_vm._v(" 1 Teams ")])]);
}, function() {
  var _vm = this;
  var _h = _vm.$createElement;
  var _c = _vm._self._c || _h;
  return _c("div", {
    staticClass: "tw-flex tw-items-center"
  }, [_c("div", {
    staticClass: "tw-border tw-rounded-full tw-text-center tw-py-2 tw-px-4 tw-border-slate-900 bold tw-bg-violet-300"
  }, [_c("p", {
    staticClass: "lg:tw-text-xl md:tw-text-[18px] lg:tw-leading-6 md:tw-leading-4 bold"
  }, [_vm._v(" 2 Teams ")])]), _c("h4", {
    staticClass: "lg:tw-text-2xl md:tw-text-[18px] bold tw-ml-2 lg:tw-leading-8"
  }, [_vm._v(" 潜力奖 ")])]);
}, function() {
  var _vm = this;
  var _h = _vm.$createElement;
  var _c = _vm._self._c || _h;
  return _c("div", {
    staticClass: "tw-flex tw-items-center"
  }, [_c("div", {
    staticClass: "tw-border tw-rounded-full tw-text-center tw-py-2 tw-px-4 tw-border-slate-900 bold tw-bg-orange-500"
  }, [_c("p", {
    staticClass: "lg:tw-text-xl md:tw-text-[18px] lg:tw-leading-6 md:tw-leading-4 bold"
  }, [_vm._v(" 15 Teams ")])]), _c("h4", {
    staticClass: "lg:tw-text-2xl md:tw-text-[18px] bold tw-ml-4 lg:tw-leading-8"
  }, [_vm._v(" 入围奖 ")])]);
}, function() {
  var _vm = this;
  var _h = _vm.$createElement;
  var _c = _vm._self._c || _h;
  return _c("div", {
    staticClass: "tw-w-[80%] tw-mx-auto tw-flex tw-justify-center lg:tw-pt-20 md:tw-pt-12"
  }, [_c("ul", {
    staticClass: "tw-flex tw-items-center"
  }, [_c("li", [_c("img", {
    staticClass: "lg:tw-w-[10vw] md:tw-w-[15vw] tw-rounded-[50%] tw-mx-auto",
    attrs: {
      "src": promoter1,
      "alt": "发起人"
    }
  })]), _c("li", {
    staticClass: "tw-ml-2"
  }, [_c("p", {
    staticClass: "lg:tw-text-xl md:tw-text-[16px] bold tw-text-zinc-600"
  }, [_vm._v(" 吉田 武司 ")]), _c("p", {
    staticClass: "lg:tw-text-base md:tw-text-[14px] regular tw-text-zinc-600"
  }, [_vm._v(" 索尼（中国）有限公司 ")]), _c("p", {
    staticClass: "lg:tw-text-base md:tw-text-[14px] regular tw-text-zinc-600"
  }, [_vm._v(" 总裁 ")])])])]);
}, function() {
  var _vm = this;
  var _h = _vm.$createElement;
  var _c = _vm._self._c || _h;
  return _c("div", {
    staticClass: "tw-bg-white lg:tw-py-20 md:tw-py-12"
  }, [_c("div", {
    staticClass: "lg:tw-w-3/4 md:tw-w-[90%] tw-mx-auto"
  }, [_c("p", {
    staticClass: "lg:tw-text-xs light tw-text-zinc-600"
  }, [_vm._v(" 1. 活动的安排如有变动，请以官方实际安排和告知为准 ")]), _c("p", {
    staticClass: "lg:tw-text-xs light tw-text-zinc-600"
  }, [_vm._v(" 2. 参赛者在本活动过程中独立产生的知识产权，包括但不限于在中国大陆地区内的专利权（含发明、实用新型和外观设计）以及专利申请权、商标权、著作权、技术秘密（know-how）及相关法律法规规定的全部权利（包括今后因法律法规的修改所赋予的权利，下同）以及其他一切知识产权均归参赛者享有；尽管有上述规定，参赛者许可索尼和/或其关联公司以及上述主体参股或控股的公司在内主体在全世界范围内永久且免费地、不受次数限制地、可转授权地、可分许可地进行盈利性和/或非盈利性的使用，且参赛者同意索尼和/或其关联公司以及上述主体参股或控股的公司在内主体就该等知识产权享有优先购买权。 ")]), _c("p", {
    staticClass: "lg:tw-text-xs light tw-text-zinc-600"
  }, [_vm._v(" 3. 避免疑义，“本活动过程中”指从活动报名至本活动结束之日止。“本活动过程中独立产生的知识产权”包括但不限于本活动的主题、参赛者的选题以及技术方案等所有与本活动有关联的知识产权和参賽作品 ")]), _c("p", {
    staticClass: "lg:tw-text-xs light tw-text-zinc-600"
  }, [_vm._v(" 4. 评审标准的打分细则请参考【活动声明与细则】文档 ")])])]);
}, function() {
  var _vm = this;
  var _h = _vm.$createElement;
  var _c = _vm._self._c || _h;
  return _c("div", {
    staticClass: "tw-py-20"
  }, [_c("div", {
    staticClass: "tw-w-3/4 tw-ml-[20%] tw-flex tw-justify-around"
  }, [_c("ul", {
    staticClass: "tw-flex-1"
  }, [_c("li", [_c("img", {
    staticClass: "tw-w-3/5 tw-mb-8",
    attrs: {
      "src": __$_require_1ebe405a__,
      "alt": "发起人"
    }
  })]), _c("li", {
    staticClass: "lg:tw-text-2xl bold tw-text-zinc-600"
  }, [_vm._v("咨询与联系")]), _c("li", {
    staticClass: "lg:tw-text-base tw-text-zinc-500 regular"
  }, [_vm._v(" scnics@sony.com ")])]), _c("ul", {
    staticClass: "tw-flex-1"
  }, [_c("li", [_c("h4", {
    staticClass: "tw-text-2xl bold tw-text-left tw-text-zinc-700 tw-leading-8"
  }, [_vm._v(" 主办单位 ")]), _c("p", {
    staticClass: "lg:tw-text-base regular tw-text-zinc-600"
  }, [_vm._v(" 索尼（中国）有限公司 ")])]), _c("li", {
    staticClass: "tw-py-4"
  }, [_c("h4", {
    staticClass: "tw-text-2xl bold tw-text-left tw-text-zinc-700 tw-leading-10"
  }, [_vm._v(" 协办单位 ")]), _c("p", {
    staticClass: "lg:tw-text-base regular tw-text-zinc-600"
  }, [_vm._v("上海交通大学")])]), _c("li", [_c("h4", {
    staticClass: "tw-text-2xl bold tw-text-left tw-text-zinc-700 tw-leading-10"
  }, [_vm._v(" 承办单位 ")]), _c("p", {
    staticClass: "lg:tw-text-base regular tw-text-zinc-600"
  }, [_vm._v(" 匠技新（上海）孵化器 ")]), _c("p", {
    staticClass: "lg:tw-text-base regular tw-text-zinc-600"
  }, [_vm._v("管理有限公司")])])]), _c("ul", {
    staticClass: "tw-flex-1"
  }, [_c("li", {
    staticClass: "tw-mx-auto md:tw-leading-6"
  }, [_c("h4", {
    staticClass: "tw-text-2xl bold tw-text-left tw-text-zinc-700 tw-leading-10"
  }, [_vm._v(" 支持单位 ")]), _c("p", {
    staticClass: "lg:tw-text-base regular tw-text-zinc-600"
  }, [_vm._v("复旦大学")]), _c("p", {
    staticClass: "lg:tw-text-base regular tw-text-zinc-600"
  }, [_vm._v("同济大学")]), _c("p", {
    staticClass: "lg:tw-text-base regular tw-text-zinc-600"
  }, [_vm._v("上海大学")]), _c("p", {
    staticClass: "lg:tw-text-base regular tw-text-zinc-600"
  }, [_vm._v(" 长三角高校合作联盟 ")]), _c("p", {
    staticClass: "lg:tw-text-md regular tw-text-zinc-600"
  }, [_vm._v("（排名无先后）")])])])])]);
}];
const App_vue_vue_type_style_index_0_scoped_true_lang = "";
function normalizeComponent(scriptExports, render2, staticRenderFns2, functionalTemplate, injectStyles, scopeId, moduleIdentifier, shadowMode) {
  var options = typeof scriptExports === "function" ? scriptExports.options : scriptExports;
  if (render2) {
    options.render = render2;
    options.staticRenderFns = staticRenderFns2;
    options._compiled = true;
  }
  if (functionalTemplate) {
    options.functional = true;
  }
  if (scopeId) {
    options._scopeId = "data-v-" + scopeId;
  }
  var hook;
  if (moduleIdentifier) {
    hook = function(context) {
      context = context || // cached call
      this.$vnode && this.$vnode.ssrContext || // stateful
      this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext;
      if (!context && typeof __VUE_SSR_CONTEXT__ !== "undefined") {
        context = __VUE_SSR_CONTEXT__;
      }
      if (injectStyles) {
        injectStyles.call(this, context);
      }
      if (context && context._registeredComponents) {
        context._registeredComponents.add(moduleIdentifier);
      }
    };
    options._ssrRegister = hook;
  } else if (injectStyles) {
    hook = shadowMode ? function() {
      injectStyles.call(
        this,
        (options.functional ? this.parent : this).$root.$options.shadowRoot
      );
    } : injectStyles;
  }
  if (hook) {
    if (options.functional) {
      options._injectStyles = hook;
      var originalRender = options.render;
      options.render = function renderWithStyleInjection(h, context) {
        hook.call(context);
        return originalRender(h, context);
      };
    } else {
      var existing = options.beforeCreate;
      options.beforeCreate = existing ? [].concat(existing, hook) : [hook];
    }
  }
  return {
    exports: scriptExports,
    options
  };
}
const __vue2_script = {
  data() {
    return {
      isMobile: false,
      activeAnchorId: 0,
      activeTitle: 0,
      navList: [
        { title: "首页", anchorId: 1 },
        { title: "报名", anchorId: 2 },
        { title: "活动介绍", anchorId: 3 },
        { title: "活动安排", anchorId: 4 },
        { title: "活动话题", anchorId: 5 },
        { title: "评委介绍", anchorId: 6 }
      ],
      downloadList: [
        { name: "活动声明细则点击下载", id: "3", url: "" },
        { name: "报名表和作品提交格式下载", id: "4", url: "" }
      ],
      promoters: [
        {
          name: "吉田 武司",
          id: 1,
          promoter: "活动发起人",
          department: "索尼（中国）有限公司",
          position: "总裁",
          url: promoter1
        },
        {
          name: "英保 黎",
          id: 2,
          promoter: "活动发起人",
          department: "索尼（中国）有限公司 事业战略室",
          position: "副总裁",
          url: promoter2
        },
        {
          name: "吉田 武司",
          id: 3,
          promoter: "学术发起人",
          department: "索尼（中国）有限公司",
          position: "总裁",
          url: empty
        },
        {
          name: "英保 黎",
          id: 4,
          promoter: "学术发起人",
          department: "索尼（中国）有限公司 事业战略室",
          position: "副总裁",
          url: empty
        }
      ],
      arranges: [
        {
          title: "初赛报名",
          id: 1,
          subtitle: "开放",
          date: "2023.11"
        },
        {
          title: "初赛作品",
          id: 2,
          subtitle: "提交开放",
          date: "2023.12-2024.03"
        },
        {
          title: "线上初赛",
          id: 3,
          subtitle: "作品评选",
          date: "2024.03"
        },
        {
          title: "决赛入围",
          id: 4,
          subtitle: "公布和邀请",
          date: "2024.04"
        },
        {
          title: "线下决赛",
          id: 5,
          subtitle: "和颁奖",
          date: "2024.05"
        },
        {
          title: "获奖",
          id: 6,
          subtitle: "公示",
          date: "2024.06-2024.08"
        }
      ],
      subjects: [
        {
          title: "潮流科技与屏",
          id: 1,
          subtitle: "Big Screen",
          thirdtitle: "for Young Gen’s Lifestyle",
          img: topic1,
          subject: [
            {
              title: "用于大屏幕的智能功能与潮流技术",
              desc: "如何结合ChatGPT，元界，新传感器技术来提高生活体验。"
            },
            {
              title: "针对不同用户社群的大屏定制功能",
              desc: "如何通过简单、智能、有趣的功能<br/>满足不同群体的需求。<br/>如电影爱好者、游戏爱好者等。"
            }
          ]
        },
        {
          title: "耳机",
          id: 2,
          subtitle: "Headphone& Next Generation、",
          thirdtitle: "of User Exprience",
          img: topic2,
          subject: [
            {
              title: "智能耳机陀螺仪应用开发",
              desc: "如何使耳机陀螺仪运用到新的程序或场景<br/>耳机陀螺仪基本的数据到进阶数据转化算法开发"
            },
            {
              title: "智能耳机全新交互创想",
              desc: "新的用户交互<br/>新的耳机形态"
            }
          ]
        },
        {
          title: "索尼 & 平台",
          id: 3,
          subtitle: "Sony’s Online Services",
          thirdtitle: "for The futrue",
          img: topic3,
          subject: [
            {
              title: "对于内容创建者",
              desc: "相机后期创作解决方案<br/>MOCOPI 动作捕捉系统创作<br/>空间现实显示屏 SDR 创作"
            },
            {
              title: "对于消费者和粉丝",
              desc: "索尼生态系统与粉丝社群创想<br/>游戏，音乐，消费类电子，动画等"
            }
          ]
        }
      ],
      standrads: [
        { cn: "创新性", en: "Innovation" },
        { cn: "可行性", en: "Feasibility" },
        { cn: "逻辑性", en: "Logicality" },
        { cn: "市场匹配性", en: "Market<br/>Matchinese" },
        { cn: "话题契合度", en: "Topic<br/>Matchinese" }
      ],
      works: [
        {
          title: "专业",
          desc: "工业设计<br/>心理学<br/>社会或人类行为研究<br/>市场研究<br/>商业战略研究<br/>机械产品设计<br/>计算机科学或软件设计<br/>跨领域研究团队<br/>传感器研究团队<br/>媒体交互研究团队如音乐，视频<br/>..."
        },
        {
          title: "方向",
          desc: "市场趋势和动向中的痛点或潜在可能性<br/>年轻人喜好和风格<br/>智慧/智能/便捷生活<br/>多媒体创新<br/>互联互通<br/>未来应用场景思考<br/>生态服务创新<br/>新技术<br/>技术新应用<br/>新的解决方案<br/>..."
        },
        {
          title: "类型",
          desc: "硬件工业设计作品<br/>交互体验设计作品<br/>软件设计作品<br/>动画影像畅想作品<br/>硬件实体作品，如机器人，<br/>材料，装置，可穿戴等<br/>应用场景设计作品<br/>商业/产品/战略计划作品<br/>...<br/><br/><br/>"
        }
      ],
      prices: [
        {
          title: "金奖 – Dream Maker",
          data: [
            "奖金 20000 以及奖杯或奖状",
            "有机会获得PoC产品原型投资",
            "和未来长期孵化合作"
          ]
        },
        {
          title: "银奖 – Dream Catcher",
          data: [
            "奖金 10000 以及奖杯或奖状",
            "有机会获得PoC产品原型投资",
            "和未来长期孵化合作"
          ]
        },
        {
          title: "铜奖 – Dream Pilot",
          data: [
            "奖金 5000 以及奖杯或奖状",
            "有机会获得PoC产品原型投资",
            "和未来长期孵化合作"
          ]
        }
      ],
      otherPrice: [
        {
          title: "未来发展",
          data: [
            "索尼中国CEO总裁额外签名认证证书",
            "索尼高层面对面畅聊",
            "索尼高层推荐信",
            "专家、大咖专业化指导及其他创新赋能资源"
          ]
        },
        {
          title: "曝光资源",
          data: ["索尼专访", "公众曝光"]
        },
        {
          title: "其他",
          data: [
            "索尼中国一日游，体验内部黑科技",
            "索尼EXPO展览邀请函",
            "索尼新品体验官资格"
          ]
        }
      ],
      qianli: [
        {
          title: "奖金 2500 以及奖状",
          data: []
        },
        {
          title: "未来发展",
          data: ["专家、技术大咖专业化指导", "及其他创新赋能资源"]
        }
      ],
      qianli1: [
        {
          title: "其他",
          data: ["索尼EXPO展览邀请函"]
        }
      ],
      ruwei: [
        {
          title: "奖金 2500 以及奖状",
          data: []
        },
        {
          title: "未来发展",
          data: ["专家、技术大咖专业化指导", "及其他创新赋能资源"]
        }
      ],
      judges: [
        {
          name: "英保 黎",
          id: 1,
          promoter: promoter2,
          department: "索尼（中国）事业战略室",
          position: "副总裁"
        },
        {
          name: "竹中 幹雄",
          id: 2,
          promoter: promoter3,
          department: "索尼（中国）研究院",
          position: "院长"
        },
        {
          name: "布川 克彦",
          id: 3,
          promoter: promoter4,
          department: "索尼（中国）软件开发中心",
          position: "副总裁"
        },
        {
          name: "刘 迎欢",
          id: 4,
          promoter: promoter5,
          department: "索尼（中国）事业战略室",
          position: "总经理"
        },
        {
          name: "郑 奇",
          id: 5,
          promoter: promoter6,
          department: "索尼（中国）设计师中心",
          position: "总经理"
        },
        {
          name: "",
          id: 6,
          promoter: "",
          department: "",
          position: ""
        },
        {
          name: "川口 元气",
          id: 7,
          promoter: promoter7,
          department: "索尼（中国）个人娱乐企划",
          position: "总监"
        },
        {
          name: "伊藤 慎",
          id: 8,
          promoter: promoter8,
          department: "索尼（中国）家庭娱乐企划",
          position: "总监"
        },
        {
          name: "",
          id: 9,
          promoter: "",
          department: "",
          position: ""
        }
      ]
    };
  },
  created() {
    this.isMobile = /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(
      navigator.userAgent
    );
    if (this.isMobile) {
      window.location.pathname = window.location.pathname.replace(
        "index.html",
        "index_m.html"
      );
    }
  },
  mounted() {
    window.addEventListener(
      "scroll",
      throttle(this.onScroll, 100, { trailing: true })
    );
  },
  methods: {
    onGotoAnchor(id) {
      const app = document.documentElement;
      const containerHeight = document.querySelector(".nav-bar").offsetHeight;
      const target = document.querySelector(`[data-anchor="${id}"]`);
      const top = target.offsetTop - containerHeight + 10;
      app.scrollTo({
        top,
        behavior: "smooth"
      });
    },
    onScroll() {
      const scrollTop = document.documentElement.scrollTop;
      const containerHeight = document.querySelector(".nav-bar").offsetHeight;
      const anchorElTop = Array.from(
        document.querySelectorAll("[data-anchor]")
      ).map((i) => i.offsetTop);
      const currentArea = scrollTop + containerHeight;
      const activeIndex = findLastIndex(anchorElTop, (t) => currentArea > t);
      if (activeIndex === -1) {
        this.activeAnchorId = 0;
      } else {
        this.activeAnchorId = activeIndex + 1;
      }
    },
    goEdu() {
      var _dtm_tag_obj = {};
      _dtm_tag_obj.tagType = "Img_click";
      _dtm_tag_obj["img_name"] = "教育优惠";
      window._dacq && typeof window._dacq.tag_obj_fun == "function" && window._dacq.tag_obj_fun(_dtm_tag_obj);
      const url = "https://www.sonystyle.com.cn/promotion/web_20230706_stu/index.html?ssid=jtdx_1109";
      window.open(url);
    }
  },
  beforeDestroy() {
    window.removeEventListener("scroll", this.onScroll);
  }
};
const __cssModules = {};
var __component__ = /* @__PURE__ */ normalizeComponent(
  __vue2_script,
  render,
  staticRenderFns,
  false,
  __vue2_injectStyles,
  "02b47827",
  null,
  null
);
function __vue2_injectStyles(context) {
  for (let o in __cssModules) {
    this[o] = __cssModules[o];
  }
}
const App = /* @__PURE__ */ function() {
  return __component__.exports;
}();
const Vue = window["Vue"];
new Vue({
  render: (h) => h(App)
}).$mount("#app");
export {
  __vite_legacy_guard
};
